LLVM 1.0 Release Notes |
Written by Chris Lattner
Introduction |
For more information about LLVM, including information about potentially more current releases, please check out the main web site. If you have questions or comments, the LLVM developer's mailing list is a good place to send them.
What's New? |
The default optimizer sequence used by the C/C++ front-ends is:
At link-time, the following optimizations are run:
TODO: Works on: SPEC CPU 2000
TODO: Works on: Olden/Ptrdist benchmarks
The What's New section should give a bulletted list of what is included, perhaps a couple of lists (Stable, Beta).
It would be useful to give a pointer to a list of the available passes (at least for the standard compiler techniques).
Portability and Supported Platforms |
Installation Instructions |
Known Problems |
for (i = 0; i != 1000000; ++i) { int X[n]; foo(X); }
The following GCC extensions are partially supported. An ignored attribute means that the LLVM compiler ignores the presence of the attribute, but the code should still work. An unsupported attribute is one which is ignored by the LLVM compiler, which will cause a different interpretation of the program.
The following extensions are known to be supported:
typeof
: referring to the type of an expression.
?:
, ",
" and casts in lvalues.
?:
expression.
void
-pointers and function pointers.
\e
stands for the character <ESC>.
__const__
, __asm__
, etc., for header files.
enum foo;
, with details to follow.
If you run into GCC extensions which have not been included in any of these lists, please let us know (also including whether or not they work).
Additional Information |
If you have any questions or comments about LLVM, please feel free to contact us via the mailing lists.