From http://llvm.org/ I looked at Overview, Features, Documentation and FAQ, and did not find the definition of LLVM. I ultimately had to go to Wikipedia.
From http://llvm.org/ I looked at Overview, Features, Documentation and FAQ, and did not find the definition of LLVM. I ultimately had to go to Wikipedia.
The first sentence on the front page of llvm.org pretty much sums it up: "The LLVM Project is a collection of modular and reusable compiler and toolchain technologies."
It may not be the clearest LLVM description out there, but that's pretty much what it is. If the description had more detail, it would not fit in one sentence.
The hard thing about describing LLVM is that it's a huge complicated project in a domain that's outside even many professional programmers' domain.
I tend to say that LLVM is (to me) a "compiler infrastructure", because I use it to build compiler back ends. However, LLVM is so much more than that, as the project includes loosely coupled tools ranging from complete compilers (clang) to debuggers (lldb) to byte code and binary format introspection utilities (llvm's binutils counterparts). So a "compiler infrastructure" or any other dumbed down explanation wouldn't do it justice. That's why the first sentence on the front page is actually pretty good.
(I did not downvote you BTW)
Someone else replied that the project is now just referred to as LLVM. That's fine, but people expect acronyms to stand for something, and the definition or lack of should be way at the top of any project. Lots of people come to a project for the first time and aren't in the know.
I don't understand the downvotes, if you downvoted, please tell why. I tried to be sensible in explaining what LLVM is and why it's hard to explain. And why it's no longer an acronym.
> The name "LLVM" was once an acronym, but is now just a brand for the umbrella project.
The LLVM developers are experts in compilers, I'd much more prefer them spending time writing compilers than fixing little things on the web site.