-
LLVM 2.1 brings two new beta C front-ends. First, Duncan, Anton and Devang
-has started syncing up llvm-gcc with GCC 4.2, yielding "llvm-gcc 4.2" (creative,
-huh?). llvm-gcc 4.2 has the promise to bring much better FORTRAN and Ada
-support to LLVM as well as features like atomic builtins, OpenMP, and many other
-things. Check it out!
+
LLVM 2.1 brings two new beta C front-ends. First, a new version of llvm-gcc
+based on GCC 4.2, innovatively called "llvm-gcc-4.2". This promises to bring
+FORTRAN and Ada support to LLVM as well as features like atomic builtins and
+OpenMP. None of these actually work yet, but don't let that stop you checking
+it out!
Second, LLVM now includes its own native C and Objective-C front-end (C++ is
in progress, but is not very far along) code named "
- Duncan and Anton made significant progress chasing down a number of problems
with C++ Zero-Cost exception handling in llvm-gcc 4.0 and 4.2. It is now at
- the point where it "just works" on linux/x86-32 and has partial support on
+ the point where it "just works" on linux/X86-32 and has partial support on
other targets.
- Devang and Duncan fixed a huge number of bugs relating to bitfields, pragma
@@ -226,7 +226,7 @@ optimizer, speeding it up and making it more aggressive. For example:
"restrict" pointer arguments to functions.
Duncan contributed support for trampolines (taking the address of a nested
- functions), currently this is only supported in the x86 target.
+ function). Currently this is only supported on the X86 target.
Lauro Ramos Venancio contributed support to encode alignment info in
load and store instructions, the foundation for other alignment-related
@@ -350,7 +350,6 @@ components, please contact us on the PR1388).
Compilation for ARM Linux OABI (old ABI) is supported, but not fully tested.
@@ -526,9 +525,12 @@ bits.
llvm-gcc partially supports these GCC extensions:
- - Nested Functions: As in Algol and Pascal, lexical scoping of functions.
- Nested functions are supported, but llvm-gcc does not support non-local
- gotos or taking the address of a nested function.
+ - Nested Functions:
+
+ As in Algol and Pascal, lexical scoping of functions.
+ Nested functions are supported, but llvm-gcc does not support
+ taking the address of a nested function (except on the X86 target)
+ or non-local gotos.
- Function Attributes:
@@ -620,8 +622,9 @@ tested and works for a number of non-trivial programs, including LLVM
itself, Qt, Mozilla, etc.
-- llvm-gcc4 only has partial support for C++
-Exception Handling, and it is not enabled by default.
+- Exception handling only works well on the linux/x86-32 target.
+In some cases, illegally throwing an exception does not result
+in a call to terminate.