From 028aeb5f8ee19db9b5b25e6949682f601228ffe6 Mon Sep 17 00:00:00 2001
From: Bill Wendling
Clang, in conjunction with the ccc driver, is now usable as a +replacement for gcc for building some small- to medium-sized C applications. Additionally, Clang now has code generation support for Objective-C on Mac OS X -platform. Major highlights include: +platform. Major highlights include:
+Clang code generation still needs considerable testing and development, +however. Some areas under active development include:
+The set of checks performed by the static analyzer is gradually expanding, -and -future plans for the tool include full source-level inter-procedural analysis -and deeper checks such as buffer overrun detection. There are many opportunities -to extend and enhance the static analyzer, and anyone interested in working on -this project is encouraged to get involved!
+and future plans for the tool include full source-level inter-procedural +analysis and deeper checks such as buffer overrun detection. There are many +opportunities to extend and enhance the static analyzer, and anyone interested +in working on this project is encouraged to get involved! @@ -174,15 +176,15 @@ bug fixes, cleanup and new features. The major changes are:This release includes a huge number of bug fixes, performance tweaks and +
This release includes a huge number of bug fixes, performance tweaks, and minor improvements. Some of the major improvements and new features are listed in this section.
@@ -214,24 +216,24 @@ in this section.The most visible end-user change in LLVM 2.4 is that it includes many optimizations and changes to make -O0 compile times much faster. You should see -improvements on the order of 30% (or more) faster than LLVM 2.3. There are many -pieces to this change, described in more detail below. The speedups and new -components can also be used for JIT compilers that want fast compilation as -well.
The biggest change to the LLVM IR is that Multiple Return Values (which were introduced in LLVM 2.3) have been generalized to full support for "First Class Aggregate" values in LLVM 2.4. This means that LLVM IR supports using structs and arrays as values in a function. This capability is mostly useful for front-end authors, who prefer to treat things like complex numbers, simple -tuples, dope vectors, etc as Value*'s instead of as a tuple of Value*'s or as +tuples, dope vectors, etc., as Value*'s instead of as a tuple of Value*'s or as memory values. Bitcode files from LLVM 2.3 will automatically migrate to the general representation.
LLVM 2.4 also includes an initial port for the PIC16 microprocessor. This -is the LLVM target that only has support for 8 bit registers, and a number of -other crazy constraints. While the port is still in early development stages, -it shows some interesting things you can do with LLVM.
New features include: -
+New features include: