Linked by Eugenia Loli-Queru on Sat 19th Nov 2005 08:26 UTC, submitted by resistor
Permalink for comment 62158
To read all comments associated with this story, please click here.
To read all comments associated with this story, please click here.




Member since:
2005-07-06
LLVM is a couple of things.
1) It is a low-level intermediate language. It's semantics are very similar to a stripped-down C, but it looks more like a very high-level portable assembler.
2) A compiler framework, consisting of libraries that take LLVM source files, apply very powerful SSA-based optimizations to them, and generate machine code.
The benefits to GCC are two-fold:
1) It gives GCC a much more rigorously-defined and well-documented intermediate representation.
2) It grants GCC access to a very clean optimization framework, as well as set of modern optimizations. These vary from ones that are common in commercial compilers (many scaler SSA optimizations), to ones that are available in only the best commercial compilers (inter-procedural analysis at link time), to ones that are not yet available on commercial compilers (large scale data structure optimizations).