X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FReleaseNotes.html;h=56dd66a21aa53860577177cb78dd5c89a3456dc3;hb=9d2c9bd11377ecac24e5c7c6198153375ac72562;hp=6b4bc451e1738e5e0c5750496c029b563eb28f8e;hpb=5733b2743c828f0efd52c30d55dbeb63330797dd;p=oota-llvm.git diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html index 6b4bc451e17..56dd66a21aa 100644 --- a/docs/ReleaseNotes.html +++ b/docs/ReleaseNotes.html @@ -1,3 +1,4 @@ + @@ -12,6 +13,7 @@
  1. Introduction
  2. +
  3. Major Changes and Sub-project Status
  4. What's New?
  5. Installation Instructions
  6. Portability and Supported Platforms
  7. @@ -23,6 +25,8 @@

    Written by the LLVM Team

    + +

    Introduction @@ -52,7 +56,7 @@ current one. To see the release notes for a specific releases, please see the @@ -64,7 +68,6 @@ It includes a large number of features and refinements from LLVM 2.2.

    -Removed features in LLVM 2.3 +Major Changes in LLVM 2.3
    -

    LLVM 2.2 was the last LLVM release to support llvm-gcc 4.0 and llvm-upgrade. -llvm-gcc 4.0 has been replaced with llvm-gcc 4.2. llvm-upgrade was useful for -upgrading LLVM 1.9 files to LLVM 2.x syntax, but you can always use a previous -LLVM release to do this. One nice impact of this is that the LLVM regressionn -test suite no longer depends on llvm-upgrade, which makes it run faster.

    +

    LLVM 2.3 no longer supports llvm-gcc 4.0, it has been replaced with + llvm-gcc 4.2.

    + +

    LLVM 2.3 no longer includes the llvm-upgrade tool. It was useful + for upgrading LLVM 1.9 files to LLVM 2.x syntax, but you can always use a + previous LLVM release to do this. One nice impact of this is that the LLVM + regression test suite no longer depends on llvm-upgrade, which makes it run + faster.

    + +

    The llvm2cpp tool has been folded into llc, use + llc -march=cpp instead of llvm2cpp.

    +

    LLVM API Changes:

    + + +
    + + +
    +Other LLVM Sub-Projects +
    + +
    +

    +The core LLVM 2.3 distribution currently consists of code from the core LLVM +repository (which roughly contains the LLVM optimizer, code generators and +supporting tools) and the llvm-gcc repository. In addition to this code, the +LLVM Project includes other sub-projects that are in development. The two which +are the most actively developed are the new vmkit Project +and the Clang Project. +

    +
    + + +
    +vmkit +
    + +
    +

    +The "vmkit" project is a new addition to the LLVM family. It is an +implementation of a JVM and a CLI Virtual Machines (Microsoft .NET is an +implementation of the CLI) using the Just-In-Time compiler of LLVM.

    + +

    The JVM, called JnJVM, executes real-world applications such as Apache +projects (e.g. Felix and Tomcat) and the SpecJVM98 benchmark. It uses the GNU +Classpath project for the base classes. The CLI implementation, called N3, is +its in early stages but can execute simple applications and the "pnetmark" +benchmark. It uses the pnetlib project as its core library.

    + +

    The 'vmkit' VMs compare in performance with industrial and top open-source +VMs on scientific applications. Besides the JIT, the VMs use many features of +the LLVM framework, including the standard set of optimizations, atomic +operations, custom function provider and memory manager for JITed methods, and +specific virtual machine optimizations. vmkit is not an official part of LLVM +2.3 release. It is publicly available under the LLVM license and can be +downloaded from: +

    + +
    +
    svn co http://llvm.org/svn/llvm-project/vmkit/trunk vmkit
    +
    + +
    + + +
    +Clang +
    + +
    + +

    The Clang project is an effort to build +a set of new 'LLVM native' front-end technologies for the LLVM optimizer +and code generator. Clang is continuing to make major strides forward in all +areas. Its C and Objective-C parsing support is very solid, and the code +generation support is far enough along to build many C applications. While not +yet production quality, it is progressing very nicely. In addition, C++ +front-end work has started to make significant progress.

    + +

    At this point, Clang is most useful if you are interested in source-to-source +transformations (such as refactoring) and other source-level tools for C and +Objective-C. Clang now also includes tools for turning C code into pretty HTML, +and includes a new static +analysis tool in development. This tool focuses on automatically finding +bugs in C and Objective-C code.

    + +
    + + + +
    + What's New? +
    + + +
    + +

    LLVM 2.3 includes a huge number of bug fixes, performance tweaks and minor +improvements. Some of the major improvements and new features are listed in +this section. +

    @@ -95,7 +216,50 @@ test suite no longer depends on llvm-upgrade, which makes it run faster.

    LLVM 2.3 includes several major new capabilities:

    @@ -103,27 +267,26 @@ test suite no longer depends on llvm-upgrade, which makes it run faster.

    -llvm-gcc 4.2 Improvements and Clang +llvm-gcc 4.2 Improvements
    -

    LLVM 2.3 fully supports llvm-gcc 4.2 front-end.

    +

    LLVM 2.3 fully supports the llvm-gcc 4.2 front-end, and includes support +for the C, C++, Objective-C, Ada, and Fortran front-ends.

    -

    llvm-gcc 4.2 includes numerous fixes to better support the Objective-C -front-end. Objective-C now works very well on Mac OS/X.

    +

    +

    @@ -137,49 +300,144 @@ this project, please see its web site.

    New features include:

    + @@ -388,25 +705,9 @@ appropriate nops inserted to ensure restartability.
    @@ -423,7 +724,7 @@ programs. inline assembly code.
  8. The C backend violates the ABI of common C++ programs, preventing intermixing between C++ compiled by the CBE and - C++ code compiled with LLC or native compilers.
  9. + C++ code compiled with llc or native compilers.
  10. The C backend does not support all exception handling constructs.
  11. @@ -435,9 +736,6 @@ programs. Known problems with the llvm-gcc C front-end - -
    Bugs
    -

    llvm-gcc does not currently support Link-Time @@ -447,8 +745,8 @@ llvmdev mailing list if you are interested.

    The only major language feature of GCC not supported by llvm-gcc is the __builtin_apply family of builtins. However, some extensions are only supported on some targets. For example, trampolines are only - supported on some targets, which are used when you take the address of a - nested function.

    + supported on some targets (these are used when you take the address of a + nested function).

    If you run into GCC extensions which are not supported, please let us know.

    @@ -468,8 +766,8 @@ itself, Qt, Mozilla, etc.

    • Exception handling works well on the X86 and PowerPC targets, including -x86-64 darwin. This works when linking to a libstdc++ compiled by GCC. It is -supported on x86-64 linux, but that is disabled by default in this release.
    • +X86-64 darwin. This works when linking to a libstdc++ compiled by GCC. It is +supported on X86-64 linux, but that is disabled by default in this release.
    @@ -484,15 +782,17 @@ supported on x86-64 linux, but that is disabled by default in this release. The llvm-gcc 4.2 Ada compiler works fairly well, however this is not a mature technology and problems should be expected. - - - -
    - Known problems with the llvm-gcc Fortran front-end -
    - -
    - -
    - -
    Additional Information