From 6ee62f8126be50d4936c6b6278bb0efb3b581cd2 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 9 Oct 2009 05:55:04 +0000 Subject: [PATCH] checkpoint. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83621 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/ReleaseNotes-2.6.html | 106 +++++++++++++++++++++++++++++++++---- 1 file changed, 96 insertions(+), 10 deletions(-) diff --git a/docs/ReleaseNotes-2.6.html b/docs/ReleaseNotes-2.6.html index d0c8c2122cd..246b670145a 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:

+ + +
+compiler-rt: Compiler Runtime Library +
+ +
+

+The new LLVM compiler-rt project +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.

+ +

+All of the code in the compiler-rt project is available under the standard LLVM +License, a "BSD-style" license.

+ +
+ + +
+klee: Symbolic Execution and Automatic Test Case Generator +
+ +
+

+The new LLVM klee project 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 OSDI 2008 paper about +Klee.

+ +
+ + +
+Dragon Egg: An LLVM backend plugin for GCC +
+ +
+

+Duncan needs to write me. +

+ +
+ +
llvm-mc: Machine Code Toolkit @@ -279,7 +332,6 @@ LLVM 2.6 (and continue to work with older LLVM releases >= 2.3 as well).

-UPDATE! LDC 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.

-UPDATE! Unladen Swallow is a branch of Python intended to be fully compatible and significantly faster. It uses LLVM's optimization passes and JIT compiler.

+ + + +
+

+LLVM-Lua 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.

+
+ @@ -345,14 +409,19 @@ in this section.

LLVM 2.6 includes several major new capabilities:

    -
  • Support for debug line numbers when optimization enabled
  • -
  • gold lto plugin
  • -
  • New MSP430 and SystemZ backends.
  • -
  • New BlackFin backend.
  • +
  • New compiler-rt, klee, + and machine code toolkit subprojects.
  • +
  • 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.
  • +
  • LLVM now includes new experiemental backends to support the MSP430, SystemZ, + and BlackFin architectures.
  • +
  • LLVM supports a new Gold Linker Plugin which + enables support for transparent + link-time optimization on ELF targets when used with the Gold binutils + linker.
  • LLVMContext, llvm_start_multithreaded: ProgrammersManual.html#threading
  • -
  • klee web page at klee.llvm.org
  • FileCheck
  • -
  • New compiler-rt project.
  • LLVM 2.6 includes a brand new experimental LLVM bindings to the Ada2005 programming language.
@@ -430,6 +499,19 @@ it run faster:

  • Stack slot coloring for register spills (denser stack frames)
  • SelectionDAGS: New BuildVectorSDNode (r65296), and ISD::VECTOR_SHUFFLE (r69952 / PR2957)
  • Experimental support for shrink wrapping support in PEI.
  • +
  • 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.
  • +
  • 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.
  • +
    @@ -569,7 +651,11 @@ to receive callbacks when the JIT emits or frees machine code. The OProfile support uses this mechanism. JIT support for oprofile (r75279), configure with --with-oprofile. Now we get line # and function info for JIT'd functions. -
  • Profile info improvements by Andreas Neustifter.
  • +
  • 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).
  • Many extensions to the C APIs.
  • LLVMC: