X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FReleaseNotes.html;h=d2c61176fa67216220d37a5ee1b6f4cebb874bd4;hb=8b44b9064427821ba2784ff3617d7cc5460df5de;hp=df23d297a12a0358de73c2882fb83f32cb28a955;hpb=e4285dc1db3b830814ac153b6ee0d9b0b069991d;p=oota-llvm.git diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html index df23d297a12..d2c61176fa6 100644 --- a/docs/ReleaseNotes.html +++ b/docs/ReleaseNotes.html @@ -4,11 +4,11 @@ - LLVM 2.0 Release Notes + LLVM 2.1 Release Notes -
LLVM 2.0 Release Notes
+
LLVM 2.1 Release Notes
  1. Introduction
  2. @@ -32,10 +32,10 @@

    This document contains the release notes for the LLVM compiler -infrastructure, release 2.0. Here we describe the status of LLVM, including any -known problems and major improvements from the previous release. All LLVM +infrastructure, release 2.1. Here we describe the status of LLVM, including +major improvements from the previous release and any known problems. All LLVM releases may be downloaded from the LLVM -releases web site. +releases web site.

    For more information about LLVM, including information about the latest release, please check out the main LLVM @@ -43,10 +43,10 @@ web site. If you have questions or comments, the LLVM developer's mailing list is a good place to send them.

    -

    Note that if you are reading this file from CVS or the main LLVM web page, -this document applies to the next release, not the current one. To see -the release notes for the current or previous releases, see the releases page.

    +

    Note that if you are reading this file from a Subversion checkout or the +main LLVM web page, this document applies to the next release, not the +current one. To see the release notes for a specific releases, please see the +releases page.

    @@ -58,137 +58,235 @@ href="http://llvm.org/releases/">releases page.

    -

    This is the eleventh public release of the LLVM Compiler Infrastructure. -Being the first major release since 1.0, this release is different in several -ways from our previous releases:

    +

    This is the twelfth public release of the LLVM Compiler Infrastructure. +It includes many features and refinements from LLVM 2.0.

    -
      -
    1. We took this as an opportunity to -break backwards compatibility with the LLVM 1.x bytecode and .ll file format. -If you have LLVM 1.9 .ll files that you would like to upgrade to LLVM 2.x, we -recommend the use of the stand alone llvm-upgrade -tool. We intend to keep compatibility with .ll and .bc formats within the 2.x -release series, like we did within the 1.x series.
    2. -
    3. There are several significant change to the LLVM IR and internal APIs, such - as a major overhaul of the type system, the completely new bitcode file - format, etc.
    4. -
    5. We designed the release around a 6 month release cycle instead of the usual - 3-month cycle. This gave us extra time to develop and test some of the - more invasive features in this release.
    6. -
    7. LLVM 2.0 no longer supports the llvm-gcc3 front-end.
    8. -
    +
    -

    Note that while this is a major version bump, this release has been - extensively tested on a wide range of software. It is easy to say that this - is our best release yet, in terms of both features and correctness.

    + +
    +New Frontends +
    + +
    + +

    LLVM 2.1 brings two new beta C front-ends. First, a new version of llvm-gcc +based on GCC 4.2, innovatively called "llvm-gcc-4.2". This promises to bring +FORTRAN and Ada support to LLVM as well as features like atomic builtins and +OpenMP. None of these actually work yet, but don't let that stop you checking +it out!

    + +

    Second, LLVM now includes its own native C and Objective-C front-end (C++ is +in progress, but is not very far along) code named "clang". This front-end has a number of great +features, primarily aimed at source-level analysis and speeding up compile-time. +At this point though, the LLVM Code Generator component is still very early in +development, so it's mostly useful for people looking to build source-level +analysis tools or source-to-source translators.

    -New Features in LLVM 2.0 +Optimizer Improvements
    - -
    Major Changes
    -

    blah -

    + +

    Some of the most noticable feature improvements this release have been in the +optimizer, speeding it up and making it more aggressive. For example:

    - +
    + +
    +Code Generator Improvements +
    - -
    llvm-gcc -Improvements
    -

    New features include: -

    + +

    One of the main focuses of this release was performance tuning and bug + fixing. In addition to these, several new major changes occurred:

    - + +
    + + + +
    +Target Specific Improvements
    - -
    Optimizer -Improvements

    New features include:

    - -
    Code -Generator Enhancements
    + + +
    +llvm-gcc Improvements +
    -

    -New features include: +

    New features include:

    +
  3. Duncan and Anton made significant progress chasing down a number of problems + with C++ Zero-Cost exception handling in llvm-gcc 4.0 and 4.2. It is now at + the point where it "just works" on linux/X86-32 and has partial support on + other targets.
  4. -

    In addition, the LLVM target description format has itself been extended in - several ways:

    - - +
  5. Devang and Duncan fixed a huge number of bugs relating to bitfields, pragma + pack, and variable sized fields in structures.
  6. -

    Further, several significant target-specific enhancements are included in -LLVM 2.0:

    +
  7. Tanya implemented support for __attribute__((noinline)) in + llvm-gcc, and added support for generic variable annotations which are + propagated into the LLVM IR, e.g. + "int X __attribute__((annotate("myproperty")));".
  8. - +
  9. Sheng Zhou and Christopher Lamb implemented alias analysis support for +"restrict" pointer arguments to functions.
  10. + +
  11. Duncan contributed support for trampolines (taking the address of a nested + function). Currently this is only supported on the X86-32 target.
  12. +
  13. Lauro Ramos Venancio contributed support to encode alignment info in + load and store instructions, the foundation for other alignment-related + work.
  14. + +
    - -
    Target-Specific -Improvements
    -
    + + +

    New features include:

      -
    • +
    • Neil Booth contributed a new "APFloat" class, which ensures that floating + point representation and constant folding is not dependent on the host + architecture that builds the application. This support is the foundation + for "long double" support that will be wrapped up in LLVM 2.2.
    • + +
    • Based on the APFloat class, Dale redesigned the internals of the ConstantFP + class and has been working on extending the core and optimizer components to + support various target-specific 'long double's. We expect this work to be + completed in LLVM 2.2.
    • + +
    • LLVM now provides an LLVMBuilder class, which makes it significantly easier + to create LLVM IR instructions.
    • + +
    • Reid contributed support for intrinsics that take arbitrary integer typed + arguments. Dan Gohman and Chandler extended it to support arbitrary + floating point arguments and vectors.
    + + - -
    -

    - -

    More specific changes include:

    +

    New features include: +

      -
    • +
    • Sterling Stein contributed a new BrainF frontend, located in llvm/examples. + This shows a some of the more modern APIs for building a front-end, and + demonstrates JIT compiler support.
    • + +
    • David Green contributed a new --enable-expensive-checks configure + option which enables STL checking, and fixed several bugs exposed by + it.
    +
    - -
    Portability and Supported Platforms @@ -200,14 +298,14 @@ Improvements

    LLVM is known to work on the following platforms:

    @@ -250,11 +348,11 @@ useful to some people. In particular, if you would like to work on one of these components, please contact us on the LLVMdev list.

    @@ -271,6 +369,9 @@ components, please contact us on the inline assembly that uses the X86 floating point stack. +
  15. The X86 backend occasionally has alignment + problems on operating systems that don't require 16-byte stack alignment + (including most non-darwin OS's like linux).
  16. @@ -286,7 +387,7 @@ components, please contact us on the PowerPC backend does not correctly implement ordered FP comparisons.
  17. The Linux PPC32/ABI support needs testing for the interpreter and static -compilation, and lacks Dwarf debugging informations. +compilation, and lacks support for debug information.
  18. @@ -299,14 +400,13 @@ compilation, and lacks Dwarf debugging informations.
    @@ -381,6 +481,11 @@ programs. @@ -400,8 +505,6 @@ programs. Optimization on most platforms "out-of-the-box". Please inquire on the llvmdev mailing list if you are interested.

    -

    FIXME: the list of supported stuff below needs to be updated. We do support -tls now, what else??

    @@ -410,85 +513,56 @@ tls now, what else??

    -