X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FReleaseNotes.html;h=94e5c7b398a460c00bb237d53301cd7852a4235f;hb=2db49d797b86b7f3615bae17b2b016727778a6c4;hp=fc6c03c6559dd0eacdd10f571888dbeecb6180b8;hpb=1440dbe4c24e594f039def9c9f2d76882a4c9580;p=oota-llvm.git diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html index fc6c03c6559..94e5c7b398a 100644 --- a/docs/ReleaseNotes.html +++ b/docs/ReleaseNotes.html @@ -4,11 +4,11 @@ - LLVM 2.7 Release Notes + LLVM 2.8 Release Notes -
LLVM 2.7 Release Notes
+
LLVM 2.8 Release Notes
LLVM Dragon Logo @@ -16,8 +16,8 @@
  1. Introduction
  2. Sub-project Status Update
  3. -
  4. External Projects Using LLVM 2.7
  5. -
  6. What's New in LLVM 2.7?
  7. +
  8. External Projects Using LLVM 2.8
  9. +
  10. What's New in LLVM 2.8?
  11. Installation Instructions
  12. Portability and Supported Platforms
  13. Known Problems
  14. @@ -28,12 +28,11 @@

    Written by the LLVM Team

    - +LLVM 2.7 +Release Notes.
    @@ -44,7 +43,7 @@ Release Notes.-->

    This document contains the release notes for the LLVM Compiler -Infrastructure, release 2.7. Here we describe the status of LLVM, including +Infrastructure, release 2.8. 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.

    @@ -74,7 +73,7 @@ Almost dead code. --> - @@ -98,7 +93,7 @@ Almost dead code.

    -The LLVM 2.7 distribution currently consists of code from the core LLVM +The LLVM 2.8 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 @@ -115,17 +110,36 @@ development. Here we include updates on these subprojects.

    -

    Clang is an LLVM front end for the C, C++, and Objective-C languages. Clang aims to provide a better user experience through expressive diagnostics, a high level of conformance to language standards, fast compilation, and low memory use. Like LLVM, Clang provides a modular, library-based architecture that makes it suitable for creating or integrating with other development tools. Clang is considered a production-quality compiler for C and Objective-C on x86 (32- and 64-bit).

    +

    Clang is an LLVM front end for the C, +C++, and Objective-C languages. Clang aims to provide a better user experience +through expressive diagnostics, a high level of conformance to language +standards, fast compilation, and low memory use. Like LLVM, Clang provides a +modular, library-based architecture that makes it suitable for creating or +integrating with other development tools. Clang is considered a +production-quality compiler for C and Objective-C on x86 (32- and 64-bit).

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

      -
    • C++ Support: Clang is now capable of self-hosting! While still alpha-quality, Clang's C++ support has matured enough to build LLVM and Clang, and C++ is now enabled by default. See the Clang C++ compatibility page for common C++ migration issues.
    • - -
    • Objective-C: Clang now includes experimental support for an updated Objective-C ABI on non-Darwin platforms. This includes support for non-fragile instance variables and accelerated proxies, as well as greater potential for future optimisations. The new ABI is used when compiling with the -fobjc-nonfragile-abi and -fgnu-runtime options. Code compiled with these options may be mixed with code compiled with GCC or clang using the old GNU ABI, but requires the libobjc2 runtime from the GNUstep project.
    • - -
    • New warnings: Clang contains a number of new warnings, including control-flow warnings (unreachable code, missing return statements in a non-void function, etc.), sign-comparison warnings, and improved format-string warnings.
    • +
    • C++ Support: Clang is now capable of self-hosting! While still +alpha-quality, Clang's C++ support has matured enough to build LLVM and Clang, +and C++ is now enabled by default. See the Clang C++ compatibility +page for common C++ migration issues.
    • + +
    • Objective-C: Clang now includes experimental support for an updated +Objective-C ABI on non-Darwin platforms. This includes support for non-fragile +instance variables and accelerated proxies, as well as greater potential for +future optimisations. The new ABI is used when compiling with the +-fobjc-nonfragile-abi and -fgnu-runtime options. Code compiled with these +options may be mixed with code compiled with GCC or clang using the old GNU ABI, +but requires the libobjc2 runtime from the GNUstep project.
    • + +
    • New warnings: Clang contains a number of new warnings, including +control-flow warnings (unreachable code, missing return statements in a +non-void function, etc.), sign-comparison warnings, and improved +format-string warnings.
    • CIndex API and Python bindings: Clang now includes a C API as part of the CIndex library. Although we may make some changes to the API in the future, it @@ -276,7 +290,7 @@ LLVM MC Project Blog Post.

      2.7 includes major parts of the work required by the new MC Project. A few targets have been refactored to support it, and work is underway to support a - native assembler in LLVM. This work is not complete in LLVM 2.7, but you has + native assembler in LLVM. This work is not complete in LLVM 2.7, but it has made substantially more progress on LLVM mainline.

      One minor example of what MC can do is to transcode an AT&T syntax @@ -439,6 +453,26 @@ static (ahead-of-time) compilation of Ruby code straight to machine code.

    + + + +
    +

    +GHC is an open source, +state-of-the-art programming suite for Haskell, a standard lazy +functional programming language. It includes an optimizing static +compiler generating good code for a variety of platforms, together +with an interactive system for convenient, quick development.

    + +

    In addition to the existing C and native code generators, GHC now +supports an LLVM +code generator. GHC supports LLVM 2.7.

    + +
    +
    @@ -586,7 +620,7 @@ release includes a few major enhancements and additions to the optimizers:

      -
    • The inliner reuses now merges arrays stack objects in different callees when +
    • The inliner now merges arrays stack objects in different callees when inlining multiple call sites into one function. This reduces the stack size of the resultant function.
    • The -basicaa alias analysis pass (which is the default) has been improved to @@ -890,50 +924,11 @@ configure with --enable-libffi.
    • API changes are:

        -
      • Just about everything has been converted to use raw_ostream instead of - std::ostream.
      • -
      • llvm/ADT/iterator.h has been removed, just use <iterator> - instead.
      • -
      • The Streams.h file and "DOUT" got removed, use "DEBUG(errs() << ...);" - instead.
      • -
      • The TargetAsmInfo interface was renamed to MCAsmInfo.
      • -
      • ModuleProvider has been removed -and its methods moved to Module and GlobalValue. -Most clients can remove uses of ExistingModuleProvider, -replace getBitcodeModuleProvider with -getLazyBitcodeModule, and pass their Module to -functions that used to accept ModuleProvider. Clients who -wrote their own ModuleProviders will need to derive from -GVMaterializer instead and use -Module::setMaterializer to attach it to a -Module.
      • - -
      • GhostLinkage has given up the ghost. -GlobalValues that have not yet been read from their backing -storage have the same linkage they will have after being read in. -Clients must replace calls to -GlobalValue::hasNotBeenReadFromBitcode with -GlobalValue::isMaterializable.
      • - -
      • The isInteger, isIntOrIntVector, isFloatingPoint, -isFPOrFPVector and isFPOrFPVector methods have been renamed -isIntegerTy, isIntOrIntVectorTy, isFloatingPointTy, -isFPOrFPVectorTy and isFPOrFPVectorTy respectively.
      • - -
      • llvm::Instruction::clone() no longer takes argument.
      • -
      • raw_fd_ostream's constructor now takes a flag argument, not individual - booleans (see include/llvm/Support/raw_ostream.h for details).
      • -
      • Some header files have been renamed: -
          -
        • llvm/Support/AIXDataTypesFix.h to - llvm/System/AIXDataTypesFix.h
        • -
        • llvm/Support/DataTypes.h to llvm/System/DataTypes.h
        • -
        • llvm/Transforms/Utils/InlineCost.h to - llvm/Analysis/InlineCost.h
        • -
        • llvm/Support/Mangler.h to llvm/Target/Mangler.h
        • -
        • llvm/Analysis/Passes.h to llvm/CodeGen/Passes.h
        • -
      • + +
      • The add, sub, and mul instructions no longer +support floating-point operands. The fadd, fsub, and +fmul instructions should be used for this purpose instead.
      • +