diff options
author | Chris Lattner <sabre@nondot.org> | 2009-10-09 05:55:04 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-10-09 05:55:04 +0000 |
commit | 6ee62f8126be50d4936c6b6278bb0efb3b581cd2 (patch) | |
tree | 72b88b3cda8d75dae7391df5cccd441295af4cb2 /docs | |
parent | aba210b6240cd5c83ffd12f4d7d35fa53367ea45 (diff) | |
download | external_llvm-6ee62f8126be50d4936c6b6278bb0efb3b581cd2.zip external_llvm-6ee62f8126be50d4936c6b6278bb0efb3b581cd2.tar.gz external_llvm-6ee62f8126be50d4936c6b6278bb0efb3b581cd2.tar.bz2 |
checkpoint.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83621 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
-rw-r--r-- | docs/ReleaseNotes-2.6.html | 106 |
1 files changed, 96 insertions, 10 deletions
diff --git a/docs/ReleaseNotes-2.6.html b/docs/ReleaseNotes-2.6.html index d0c8c212..246b670 100644 --- a/docs/ReleaseNotes-2.6.html +++ b/docs/ReleaseNotes-2.6.html @@ -180,6 +180,59 @@ bug fixes, cleanup and new features. The major changes are:</p> </ul> </div> + +<!--=========================================================================--> +<div class="doc_subsection"> +<a name="compiler-rt">compiler-rt: Compiler Runtime Library</a> +</div> + +<div class="doc_text"> +<p> +The new LLVM <a href="http://compiler-rt.llvm.org/">compiler-rt project</a> +is a simple library that provides an implementation of the low-level +target-specific hooks required by code generation and other runtime components. +For example, when compiling for a 32-bit target, converting a double to a 64-bit +unsigned integer is compiling into a runtime call to the "__fixunsdfdi" +function. The compiler-rt library provides optimized implementations of this and +other low-level routines.</p> + +<p> +All of the code in the compiler-rt project is available under the standard LLVM +License, a "BSD-style" license.</p> + +</div> + +<!--=========================================================================--> +<div class="doc_subsection"> +<a name="klee">klee: Symbolic Execution and Automatic Test Case Generator</a> +</div> + +<div class="doc_text"> +<p> +The new LLVM <a href="http://klee.llvm.org/">klee project</a> is a symbolic +execution framework for programs in LLVM bitcode form. Klee tries to +symbolically evaluate "all" paths through the application and records state +transitions that lead to fault states. This allows it to construct testcases +that lead to faults and can even be used to verify algorithms. For more +details, please see the <a +href="http://llvm.org/pubs/2008-12-OSDI-KLEE.html">OSDI 2008 paper</a> about +Klee.</p> + +</div> + +<!--=========================================================================--> +<div class="doc_subsection"> +<a name="dragonegg">Dragon Egg: An LLVM backend plugin for GCC</a> +</div> + +<div class="doc_text"> +<p> +<b>Duncan needs to write me</b>. +</p> + +</div> + + <!--=========================================================================--> <div class="doc_subsection"> <a name="mc">llvm-mc: Machine Code Toolkit</a> @@ -279,7 +332,6 @@ LLVM 2.6 (and continue to work with older LLVM releases >= 2.3 as well). <div class="doc_text"> <p> -<b>UPDATE!</b> <a href="http://www.dsource.org/projects/ldc">LDC</a> is an implementation of the D Programming Language using the LLVM optimizer and code generator. The LDC project works great with the LLVM 2.6 release. General improvements in @@ -306,18 +358,30 @@ reimplementation of an earlier project that is now based on LLVM.</p> <!--=========================================================================--> <div class="doc_subsection"> -<a name="Unladen Swallow">Unladen Swallow</a> +<a name="UnladenSwallow">Unladen Swallow</a> </div> <div class="doc_text"> <p> -<b>UPDATE!</b> <a href="http://code.google.com/p/unladen-swallow/">Unladen Swallow</a> is a branch of <a href="http://python.org/">Python</a> intended to be fully compatible and significantly faster. It uses LLVM's optimization passes and JIT compiler.</p> </div> +<!--=========================================================================--> +<div class="doc_subsection"> +<a name="llvm-lua">llvm-lua</a> +</div> + +<div class="doc_text"> +<p> +<a href="http://code.google.com/p/llvm-lua/">LLVM-Lua</a> uses LLVM to add JIT +& static compiling support to the Lua VM. Lua bytecode is analyzed to +remove type checks, then LLVM is used to compile those bytecodes down to machine +code.</p> +</div> + <!-- *********************************************************************** --> @@ -345,14 +409,19 @@ in this section. <p>LLVM 2.6 includes several major new capabilities:</p> <ul> -<li>Support for debug line numbers when optimization enabled</li> -<li>gold lto plugin</li> -<li>New MSP430 and SystemZ backends.</li> -<li>New BlackFin backend.</li> +<li>New <a href="#compiler-rt">compiler-rt</a>, <A href="#klee">klee</a>, + and <a href="#mc">machine code toolkit</a> subprojects.</li> +<li>LLVM debug info now generates line number information, even when + optimizations are enabled. This allows statistical sampling tools like + oprofile and Shark to map samples back to source lines.</li> +<li>LLVM now includes new experiemental backends to support the MSP430, SystemZ, + and BlackFin architectures.</li> +<li>LLVM supports a new <a href="GoldPlugin.html">Gold Linker Plugin</a> which + enables support for <a href="LinkTimeOptimization.html">transparent + link-time optimization</a> on ELF targets when used with the Gold binutils + linker.</li> <li>LLVMContext, llvm_start_multithreaded: ProgrammersManual.html#threading</li> -<li>klee web page at klee.llvm.org</li> <li>FileCheck</li> -<li>New compiler-rt project.</li> <li>LLVM 2.6 includes a brand new experimental LLVM bindings to the Ada2005 programming language.</li> </ul> @@ -430,6 +499,19 @@ it run faster:</p> <li>Stack slot coloring for register spills (denser stack frames)</li> <li>SelectionDAGS: New BuildVectorSDNode (r65296), and ISD::VECTOR_SHUFFLE (r69952 / PR2957)</li> <li>Experimental support for shrink wrapping support in PEI.</li> +<li>Experimental support for writing ELF .o files directly from the compiler, + it works well for many simple C testcases, but doesn't support exception + handling, debug info, inline assembly, etc.</li> +<li>Targets can now specify register allocation hints through + MachineRegisterInfo:: setRegAllocationHint. A regalloc hint consists 1) hint + type, 2) physical register number. A hint type of zero specifies a register + allocation preference. Other hint type values are target specific which are + resolved by TargetRegisterInfo::ResolveRegAllocHint. An example of which is + the ARM target can uses register hint to request that the register allocator + provide an even / odd register pair to two virtual registers. It is + important to note the register allocation hints are just hints. There is no + guarantee the register allocators will be able to satisfy the hints.</li> + </ul> </div> @@ -569,7 +651,11 @@ to receive callbacks when the JIT emits or frees machine code. The OProfile support uses this mechanism.</li> JIT support for oprofile (r75279), configure with --with-oprofile. Now we get line # and function info for JIT'd functions. -<li>Profile info improvements by Andreas Neustifter.</li> +<li>LLVM profile information support has been significantly improved to produce +correct use counts, and has support for edge profiling with reduced runtime +overhead. Combined, the generated profile information is both more correct and +imposes about half as much overhead (2.6. from 12% to 6% overhead on SPEC +CPU2000).</li> <li>Many extensions to the C APIs.</li> <li>LLVMC: |