From: Chad Rosier Date: Fri, 27 May 2011 22:50:46 +0000 (+0000) Subject: Clean out the 2.9 Release Notes. Mostly limited to What's New in LLVM X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=e6291d02d11977f4dae12f6e22cefb4356b25cd1;p=oota-llvm.git Clean out the 2.9 Release Notes. Mostly limited to What's New in LLVM and enhancements in sub-project status updates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132227 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html index 40adbc60efe..a5610dbea65 100644 --- a/docs/ReleaseNotes.html +++ b/docs/ReleaseNotes.html @@ -4,11 +4,11 @@ - LLVM 2.9 Release Notes + LLVM 3.0 Release Notes -

LLVM 2.9 Release Notes

+

LLVM 3.0 Release Notes

LLVM Dragon Logo @@ -16,8 +16,8 @@
  1. Introduction
  2. Sub-project Status Update
  3. -
  4. External Projects Using LLVM 2.9
  5. -
  6. What's New in LLVM 2.9?
  7. +
  8. External Projects Using LLVM 3.0
  9. +
  10. What's New in LLVM 3.0?
  11. Installation Instructions
  12. Known Problems
  13. Additional Information
  14. @@ -28,10 +28,10 @@ @@ -44,7 +44,7 @@ Release Notes.

    This document contains the release notes for the LLVM Compiler -Infrastructure, release 2.9. Here we describe the status of LLVM, including +Infrastructure, release 3.0. Here we describe the status of LLVM, including major improvements from the previous release and significant known problems. All LLVM releases may be downloaded from the LLVM releases web site.

    @@ -79,7 +79,7 @@ current one. To see the release notes for a specific release, please see the

    -The LLVM 2.9 distribution currently consists of code from the core LLVM +The LLVM 3.0 distribution currently consists of code from the core LLVM repository (which roughly includes the LLVM optimizers, code generators and supporting tools), the Clang repository and the llvm-gcc repository. In addition to this code, the LLVM Project includes other sub-projects that are in @@ -102,13 +102,7 @@ integrating with other development tools. Clang is considered a production-quality compiler for C, Objective-C, C++ and Objective-C++ on x86 (32- and 64-bit), and for darwin/arm targets.

    -

    In the LLVM 2.9 time-frame, the Clang team has made many improvements in C, -C++ and Objective-C support. C++ support is now generally rock solid, has -been exercised on a broad variety of code, and has several new C++'0x features -implemented (such as rvalue references and variadic templates). LLVM 2.9 has -also brought in a large range of bug fixes and minor features (e.g. __label__ -support), and is much more compatible with the Linux Kernel.

    +

    In the LLVM 3.0 time-frame, the Clang team has made many improvements:

    If Clang rejects your code but another compiler accepts it, please take a look at the language @@ -136,15 +130,11 @@ not known whether the compiled code actually works or not!

    -The 2.9 release has the following notable changes: +The 3.0 release has the following notable changes:

      -
    • The plugin is much more stable when compiling Fortran.
    • -
    • Inline assembly where an asm output is tied to an input of a different size -is now supported in many more cases.
    • -
    • Basic support for the __float128 type was added. It is now possible to -generate LLVM IR from programs using __float128 but code generation does not -work yet.
    • -
    • Compiling Java programs no longer systematically crashes the plugin.
    • +
    @@ -165,13 +155,7 @@ function. The compiler-rt library provides highly optimized implementations of this and other low-level routines (some are 3x faster than the equivalent libgcc routines).

    -

    In the LLVM 2.9 timeframe, compiler_rt has had several minor changes for - better ARM support, and a fairly major license change. All of the code in the - compiler-rt project is now dual - licensed under MIT and UIUC license, which allows you to use compiler-rt - in applications without the binary copyright reproduction clause. If you - prefer the LLVM/UIUC license, you are free to continue using it under that - license as well.

    +

    In the LLVM 3.0 timeframe,

    @@ -189,7 +173,7 @@ libraries in the larger LLVM Project, such as the Clang expression parser, the LLVM disassembler and the LLVM JIT.

    -LLDB is has advanced by leaps and bounds in the 2.9 timeframe. It is +LLDB is has advanced by leaps and bounds in the 3.0 timeframe. It is dramatically more stable and useful, and includes both a new tutorial and a side-by-side comparison with @@ -210,8 +194,7 @@ ground up to specifically target the forthcoming C++'0X standard and focus on delivering great performance.

    -In the LLVM 2.9 timeframe, libc++ has had numerous bugs fixed, and is now being -co-developed with Clang's C++'0x mode.

    +In the LLVM 3.0 timeframe,

    Like compiler_rt, libc++ is now dual @@ -245,7 +228,7 @@ Like compiler_rt, libc++ is now dual

    The VMKit project is an implementation of a Java Virtual Machine (Java VM or JVM) that uses LLVM for static and - just-in-time compilation. As of LLVM 2.9, VMKit now supports generational + just-in-time compilation. As of LLVM 3.0, VMKit now supports generational garbage collectors. The garbage collectors are provided by the MMTk framework, and VMKit can be configured to use one of the numerous implemented collectors of MMTk. @@ -275,7 +258,7 @@ be used to verify some algorithms.

    - External Open Source Projects Using LLVM 2.9 + External Open Source Projects Using LLVM 3.0

    @@ -283,7 +266,7 @@ be used to verify some algorithms.

    An exciting aspect of LLVM is that it is used as an enabling technology for a lot of other language and tools projects. This section lists some of the - projects that have already been updated to work with LLVM 2.9.

    + projects that have already been updated to work with LLVM 3.0.

    Crack Programming Language

    @@ -344,7 +327,7 @@ bitcode with SystemC-specific information.

    modules, and inline C, C++, Fortran and Faust code in Pure programs if the corresponding LLVM-enabled compilers are installed).

    -

    Pure version 0.47 has been tested and is known to work with LLVM 2.9 +

    Pure version 0.47 has been tested and is known to work with LLVM 3.0 (and continues to work with older LLVM releases >= 2.5).

    @@ -363,7 +346,7 @@ code.

    OpenJDK 7 b112, IcedTea6 1.9 and IcedTea7 1.13 and later have been tested -and are known to work with LLVM 2.9 (and continue to work with older LLVM +and are known to work with LLVM 3.0 (and continue to work with older LLVM releases >= 2.6 as well).

    @@ -420,7 +403,7 @@ and parallelism.

    audio signal processing. The name FAUST stands for Functional AUdio STream. Its programming model combines two approaches: functional programming and block diagram composition. In addition with the C, C++, JAVA output formats, the -Faust compiler can now generate LLVM bitcode, and works with LLVM 2.7-2.9.

    +Faust compiler can now generate LLVM bitcode, and works with LLVM 2.7-3.0.

    @@ -428,7 +411,7 @@ Faust compiler can now generate LLVM bitcode, and works with LLVM 2.7-2.9.

    - What's New in LLVM 2.9? + What's New in LLVM 3.0?

    @@ -446,24 +429,13 @@ in this section.
    -

    LLVM 2.9 includes several major new capabilities:

    +

    LLVM 3.0 includes several major new capabilities:

      - -
    • Type Based Alias Analysis (TBAA) is now implemented and turned on by default - in Clang. This allows substantially better load/store optimization in some - cases. TBAA can be disabled by passing -fno-strict-aliasing. -
    • - -
    • This release has seen a continued focus on quality of debug information. - LLVM now generates much higher fidelity debug information, particularly when - debugging optimized code.
    • -
    • Inline assembly now supports multiple alternative constraints.
    • - -
    • A new backend for the NVIDIA PTX virtual ISA (used to target its GPUs) is - under rapid development. It is not generally useful in 2.9, but is making - rapid progress.
    • +
    @@ -479,19 +451,9 @@ in this section. expose new optimization opportunities:

      -
    • The udiv, ashr, lshr, and shl - instructions now have support exact and nuw/nsw bits to indicate that they - don't overflow or shift out bits. This is useful for optimization of pointer differences and other cases.
    • - -
    • LLVM IR now supports the unnamed_addr - attribute to indicate that constant global variables with identical - initializers can be merged. This fixed an - issue where LLVM would incorrectly merge two globals which were supposed - to have distinct addresses.
    • - -
    • The new hotpatch attribute has been added - to allow runtime patching of functions.
    • +
    @@ -507,57 +469,9 @@ expose new optimization opportunities:

    release includes a few major enhancements and additions to the optimizers:

    @@ -577,38 +491,9 @@ and a number of other related areas that CPU instruction-set level tools work in.

    For more information, please see the

    @@ -671,32 +531,6 @@ it run faster: