From: Chris Lattner Date: Fri, 21 Sep 2007 03:54:09 +0000 (+0000) Subject: Initial hack at 2.1 release notes. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=8497764d703aa5361790eaf72e64da33e31f2503;p=oota-llvm.git Initial hack at 2.1 release notes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42186 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html index 03d2db112fa..7fc4ead6001 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,7 +32,7 @@

    This document contains the release notes for the LLVM compiler -infrastructure, release 2.0. Here we describe the status of LLVM, including +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.

    @@ -44,10 +44,9 @@ href="http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVM developer's mailing list is a good place to send them.

    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 the current or previous releases, see the releases page.

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

    @@ -59,416 +58,197 @@ 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:

    - -
      -
    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 (which is included with 2.0). 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 (described below).
    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. Users are required to - upgrade to llvm-gcc4. llvm-gcc4 includes many features over - llvm-gcc3, is faster, and is much easier to - build from source.
    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. This is - the first LLVM release to correctly compile and optimize major software like - LLVM itself, Mozilla/Seamonkey, Qt 4.3rc1, kOffice, etc out of the box on - linux/x86. -

    +

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

    - -
    -

    Changes to the LLVM IR itself:

    +

    LLVM 2.1 brings two new beta C front-ends. First, Duncan, Anton and Devang +start syncing up llvm-gcc with GCC 4.2, yielding "llvm-gcc 4.2" (creative, +huh?). llvm-gcc 4.2 has the promise to bring much better FORTRAN and Ada +support to LLVM as well as features like atomic builtins, OpenMP, and many other +things. Check 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.

      -
    • Integer types are now completely signless. This means that we - have types like i8/i16/i32 instead of ubyte/sbyte/short/ushort/int - etc. LLVM operations that depend on sign have been split up into - separate instructions (PR950). This - eliminates cast instructions that just change the sign of the operands (e.g. - int -> uint), which reduces the size of the IR and makes optimizers - simpler to write.
    • - -
    • Integer types with arbitrary bitwidths (e.g. i13, i36, i42, i1057, etc) are - now supported in the LLVM IR and optimizations (PR1043). However, neither llvm-gcc - (PR1284) nor the native code generators - (PR1270) support non-standard width - integers yet.
    • - -
    • 'Type planes' have been removed (PR411). - It is no longer possible to have two values with the same name in the - same symbol table. This simplifies LLVM internals, allowing significant - speedups.
    • - -
    • Global variables and functions in .ll files are now prefixed with - @ instead of % (PR645).
    • - -
    • The LLVM 1.x "bytecode" format has been replaced with a - completely new binary representation, named 'bitcode'. The Bitcode Format brings a - number of advantages to the LLVM over the old bytecode format: it is denser - (files are smaller), more extensible, requires less memory to read, - is easier to keep backwards compatible (so LLVM 2.5 will read 2.0 .bc - files), and has many other nice features.
    • - -
    • Load and store instructions now track the alignment of their pointer - (PR400). This allows the IR to - express loads that are not sufficiently aligned (e.g. due to '#pragma - packed') or to capture extra alignment information.
    • -
    +
    -

    Major new features:

    + + -