-<ol>
- <li>LLVM now includes a Just-In-Time compiler for the PowerPC target.</li>
- <li>llvmgcc and llvmg++ now emit source line number information when '-g' is
- passed in, making it possible to map from LLVM code back to source.
- This information is currently used by llvm-db and can be used with other
- tools and passes.</li>
- <li>The test/Programs hierarchy <a href="http://llvm.cs.uiuc.edu/PR257">has
- been moved out of the main LLVM tree</a> into a separate CVS repository and
- tarball. This shrinks the distribution size of LLVM itself significantly.
- </li>
- <li>LLVM now optimizes global variables more aggressively than it did
- before.</li>
- <li>LLVM now includes the new '<tt>undef</tt>' value and
- <a href="LangRef.html#i_unreachable"><tt>unreachable</tt></a> instruction,
- which give the optimizer more information about the behavior of the
- program.
- </li>
- <li>Bytecode compression with bzip2 has been implemented. All bytecode files
- generated by LLVM will now be compressed by default. Compression can be
- disabled with the <tt>-disable-compression</tt> option to the tools that can
- generate bytecode files.
- </li>
- <li>A generic <a href="CommandGuide/html/llvmc.html">compiler driver</a>
- (llvmc) and
- an associated <a href="CommandGuide/html/llvm-ld.html">generic linker</a>
- (llvm-ld) have been added. The compiler driver is generic because it can be
- configured
- to pre-process, translate, optimize, assemble, and link code from any source
- language with an LLVM front-end. This makes it easier for compiler writers
- to hide the multiple steps required to compile a program (compiling,
- optimizing, linking runtime libraries, etc) in one simple command.
- </li>
- <li>The <a href="http://llvm.cs.uiuc.edu/PR263">dependent libraries</a>
- feature has been implemented. This allows front end compilers to indicate in
- the bytecode which libraries the bytecode needs to be linked with. Both the
- C/C++ and Stacker front ends support generating the required dependencies.
- The linker now supports using this information to ensure required libaries are
- linked into the module. This minimizes the need to use the <tt>-l</tt> option
- when using <a href="CommandGuide/html/llvmc.html"><tt>llvmc</tt></a>
- </li>
- <li>The LLVM makefiles have been improved to build LLVM much faster and
- includes new targets (like dist-check, uninstall). One important user-visible
- change is that libraries and tools will now be built into
- <tt>$builddir/Debug/{bin,lib}</tt>
- instead of <tt>$builddir/tools/Debug</tt> and <tt>$builddir/lib/Debug</tt>
- (Similarly for <tt>Release</tt> and <tt>Profile</tt> builds).
- </li>
- <li>The LLVM source code is much more compatible with Microsoft Visual C++,
- including the JIT and runtime-code generation, though the entire system
- may not work with it.
- </li>
- <li>The JIT-Target interfaces <a href="http://llvm.cs.uiuc.edu/PR283">are
- now much simpler</a> and more powerful.
- </li>
- <li>LLVM now provides llvm-ar and llvm-ranlib tools for working with archives
- of LLVM bytecode files.</li>
- <li>zlib and libpng are <a href="http://llvm.cs.uiuc.edu/PR417">no longer
- included in the main LLVM tarball</a>.</li>
- <li>The LLVM code generator now automatically generates assembly code writers
- from an abstract target descriptions, eliminating the need to write
- assembly printers manually.</li>
- <li>LLVM regression and feature tests now use DejaGNU instead of QMTest.</li>
-</ol>