From 6081fa19c53c26a1abef0d4147a9863c9f1c2c90 Mon Sep 17 00:00:00 2001 From: Bill Wendling Date: Thu, 24 May 2012 06:38:09 +0000 Subject: [PATCH] Remove old release notes. Ready them for additions from current development cycle. llvm-svn: 157378 --- llvm/docs/ReleaseNotes.html | 341 +++++++++++++------------------------------- 1 file changed, 96 insertions(+), 245 deletions(-) diff --git a/llvm/docs/ReleaseNotes.html b/llvm/docs/ReleaseNotes.html index 09446c9..e903080 100644 --- a/llvm/docs/ReleaseNotes.html +++ b/llvm/docs/ReleaseNotes.html @@ -4,11 +4,11 @@ - LLVM 3.1 Release Notes + LLVM 3.2 Release Notes -

LLVM 3.1 Release Notes

+

LLVM 3.2 Release Notes

  • Introduction
  • Sub-project Status Update
  • -
  • External Projects Using LLVM 3.1
  • +
  • External Projects Using LLVM 3.2
  • What's New in LLVM?
  • Installation Instructions
  • Known Problems
  • @@ -29,10 +29,10 @@

    Written by the LLVM Team

    -

    These are in-progress notes for the upcoming LLVM 3.1 +

    These are in-progress notes for the upcoming LLVM 3.2 release.
    You may prefer the -LLVM 3.0 +LLVM 3.1 Release Notes.

    @@ -44,11 +44,11 @@ Release Notes.

    This document contains the release notes for the LLVM Compiler - Infrastructure, release 3.1. Here we describe the status of LLVM, including + Infrastructure, release 3.2. Here we describe the status of LLVM, including major improvements from the previous release, improvements in various - subprojects of LLVM, and some of the current users of the code. - All LLVM releases may be downloaded from - the LLVM releases web site.

    + subprojects of LLVM, and some of the current users of the code. All LLVM + releases may be downloaded from the LLVM + releases web site.

    For more information about LLVM, including information about the latest release, please check out the main LLVM web @@ -72,10 +72,10 @@ Release Notes.

    -

    The LLVM 3.1 distribution currently consists of code from the core LLVM - repository (which roughly includes the LLVM optimizers, code generators and - supporting tools), and the Clang repository. In addition to this code, the - LLVM Project includes other sub-projects that are in development. Here we +

    The LLVM 3.2 distribution currently consists of code from the core LLVM + repository, which roughly includes the LLVM optimizers, code generators and + supporting tools, and the Clang repository. In addition to this code, the + LLVM Project includes other sub-projects that are in development. Here we include updates on these subprojects.

    @@ -94,20 +94,13 @@ Release Notes. 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 3.1 time-frame, the Clang team has made many improvements. +

    In the LLVM 3.2 time-frame, the Clang team has made many improvements. Highlights include:

      -
    • Greatly expanded C++11 - support including lambdas, initializer lists, constexpr, user-defined - literals, and atomics.
    • -
    • A new tooling - library to ease building of clang-based standalone tools.
    • -
    • Extended support for - literals in - Objective C.
    • +
    • ...
    -

    For more details about the changes to Clang since the 3.0 release, see the +

    For more details about the changes to Clang since the 3.1 release, see the Clang release notes.

    @@ -133,23 +126,10 @@ Release Notes. Linux and OpenBSD platforms. It fully supports Ada, C, C++ and Fortran. It has partial support for Go, Java, Obj-C and Obj-C++.

    -

    The 3.1 release has the following notable changes:

    +

    The 3.2 release has the following notable changes:

      -
    • Partial support for gcc-4.7. Ada support is poor, but other languages work - fairly well.
    • - -
    • Support for ARM processors. Some essential gcc headers that are needed to - build DragonEgg for ARM are not installed by gcc. To work around this, - copy the missing headers from the gcc source tree.
    • - -
    • Better optimization for Fortran by exploiting the fact that Fortran scalar - arguments have 'restrict' semantics.
    • - -
    • Better optimization for all languages by passing information about type - aliasing and type ranges to the LLVM optimizers.
    • - -
    • A regression test-suite was added.
    • +
    • ...
    @@ -166,13 +146,15 @@ Release Notes. target-specific hooks required by code generation and other runtime components. For example, when compiling for a 32-bit target, converting a double to a 64-bit unsigned integer is compiled into a runtime call to the - "__fixunsdfdi" 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).

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

    + +

    The 3.2 release has the following notable changes:

    -

    As of 3.1, compiler-rt includes the helper functions for atomic operations, - allowing atomic operations on arbitrary-sized quantities to work. These - functions follow the specification defined by gcc and are used by clang.

    +
    @@ -189,6 +171,12 @@ Release Notes. expression parsing (particularly for C++) and uses the LLVM JIT for target support.

    +

    The 3.2 release has the following notable changes:

    + + + @@ -202,15 +190,10 @@ Release Notes. licensed under the MIT and UIUC license, allowing it to be used more permissively.

    -

    Within the LLVM 3.1 time-frame there were the following highlights:

    +

    Within the LLVM 3.2 time-frame there were the following highlights:

    @@ -226,8 +209,11 @@ Release Notes. of a Java Virtual Machine (Java VM or JVM) that uses LLVM for static and just-in-time compilation.

    -

    In the LLVM 3.1 time-frame, VMKit has had significant improvements on both - runtime and startup performance.

    +

    The 3.2 release has the following notable changes:

    + + @@ -245,16 +231,10 @@ Release Notes. Work in the area of automatic SIMD and accelerator code generation was started.

    -

    Within the LLVM 3.1 time-frame there were the following highlights:

    +

    Within the LLVM 3.2 time-frame there were the following highlights:

    @@ -263,15 +243,15 @@ Release Notes.

    - External Open Source Projects Using LLVM 3.1 + External Open Source Projects Using LLVM 3.2

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

    + a lot of other language and tools projects. This section lists some of the + projects that have already been updated to work with LLVM 3.2.

    Crack

    @@ -415,14 +395,14 @@ Release Notes.

    - What's New in LLVM 3.1? + What's New in LLVM 3.2?

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

    @@ -432,13 +412,13 @@ Release Notes.
    - @@ -449,17 +429,10 @@ Release Notes. llvm/lib/Archive - replace with lib object? --> -

    LLVM 3.1 includes several major changes and big features:

    +

    LLVM 3.2 includes several major changes and big features:

    @@ -476,19 +449,7 @@ Release Notes. expose new optimization opportunities:

      -
    • A new type representing 16 bit half floating point values has - been added.
    • -
    • IR now supports vectors of pointers, including vector GEPs.
    • -
    • Module flags have been introduced. They convey information about the - module as a whole to LLVM subsystems. This is currently used to encode - Objective C ABI information.
    • -
    • Loads can now have range metadata attached to them to describe the - possible values being loaded.
    • -
    • The llvm.ctlz and llvm.cttz intrinsics now have an - additional argument which indicates whether the behavior of the intrinsic - is undefined on a zero input. This can be used to generate more efficient - code on platforms that only have instructions which don't return the type - size when counting bits in 0.
    • +
    • ...
    @@ -500,22 +461,11 @@ Release Notes.
    -

    In addition to many minor performance tweaks and bug fixes, this - release includes a few major enhancements and additions to the - optimizers:

    +

    In addition to many minor performance tweaks and bug fixes, this release + includes a few major enhancements and additions to the optimizers:

      -
    • The loop unroll pass now is able to unroll loops with run-time trip counts. - This feature is turned off by default, and is enabled with the - -unroll-runtime flag.
    • -
    • A new basic-block autovectorization pass is available. Pass - -vectorize to run this pass along with some associated - post-vectorization cleanup passes. For more information, see the EuroLLVM - 2012 slides: - Autovectorization with LLVM.
    • -
    • Inline cost heuristics have been completely overhauled and now closely - model constant propagation through call sites, disregard trivially dead - code costs, and can model C++ STL iterator patterns.
    • +
    • ...
    @@ -530,14 +480,12 @@ Release Notes.

    The LLVM Machine Code (aka MC) subsystem was created to solve a number of problems in the realm of assembly, disassembly, object file format handling, and a number of other related areas that CPU instruction-set level tools work - in. For more information, please see - the Intro - to the LLVM MC Project Blog Post.

    + in. For more information, please see the + Intro + to the LLVM MC Project Blog Post.

    @@ -562,21 +510,7 @@ Release Notes. make it run faster:

    We added new TableGen infrastructure to support bundling for @@ -593,11 +527,14 @@ Release Notes.

    Basic Block Placement

    +
    +

    A probability based block placement and code layout algorithm was added to -LLVM's code generator. This layout pass supports probabilities derived from -static heuristics as well as source code annotations such as -__builtin_expect.

    + LLVM's code generator. This layout pass supports probabilities derived from + static heuristics as well as source code annotations such as + __builtin_expect.

    +
    @@ -610,14 +547,7 @@ static heuristics as well as source code annotations such as

    New features and major changes in the X86 target include:

    @@ -632,65 +562,45 @@ static heuristics as well as source code annotations such as

    New features of the ARM target include:

    + +

    ARM Integrated Assembler

    +
    +

    The ARM target now includes a full featured macro assembler, including -direct-to-object module support for clang. The assembler is currently enabled -by default for Darwin only pending testing and any additional necessary -platform specific support for Linux.

    + direct-to-object module support for clang. The assembler is currently enabled + by default for Darwin only pending testing and any additional necessary + platform specific support for Linux.

    Full support is included for Thumb1, Thumb2 and ARM modes, along with -subtarget and CPU specific extensions for VFP2, VFP3 and NEON.

    + subtarget and CPU specific extensions for VFP2, VFP3 and NEON.

    The assembler is Unified Syntax only (see ARM Architecural Reference Manual -for details). While there is some, and growing, support for pre-unfied (divided) -syntax, there are still significant gaps in that support.

    -
    + for details). While there is some, and growing, support for pre-unfied + (divided) syntax, there are still significant gaps in that support.

    - -

    -MIPS Target Improvements -

    -
    -New features and major changes in the MIPS target include:

    - -

    -PTX Target Improvements +MIPS Target Improvements

    -

    An outstanding conditional inversion bug was fixed in this release.

    +

    New features and major changes in the MIPS target include:

    -

    NOTE: LLVM 3.1 marks the last release of the PTX back-end, in its - current form. The back-end is currently being replaced by the NVPTX - back-end, currently in SVN ToT.

    +
    @@ -702,7 +612,7 @@ New features and major changes in the MIPS target include:

    @@ -715,25 +625,11 @@ New features and major changes in the MIPS target include:

    If you're already an LLVM user or developer with out-of-tree changes based on - LLVM 3.1, this section lists some "gotchas" that you may run into upgrading + LLVM 3.2, this section lists some "gotchas" that you may run into upgrading from the previous release.

    @@ -749,40 +645,7 @@ New features and major changes in the MIPS target include:

    LLVM API changes are:

    @@ -797,13 +660,8 @@ New features and major changes in the MIPS target include:

    In addition, some tools have changed in this release. Some of the changes are:

    - @@ -817,19 +675,12 @@ New features and major changes in the MIPS target include:

    Officially supported Python bindings have been added! Feature support is far -from complete. The current bindings support interfaces to:

    + from complete. The current bindings support interfaces to:

    + -

    Using the Object File Interface, it is possible to inspect binary object files. -Think of it as a Python version of readelf or llvm-objdump.

    - -

    Support for additional features is currently being developed by community -contributors. If you are interested in shaping the direction of the Python -bindings, please express your intent on IRC or the developers list.

    -
    @@ -845,11 +696,11 @@ bindings, please express your intent on IRC or the developers list.

    LLVM is generally a production quality compiler, and is used by a broad range of applications and shipping in many products. That said, not every subsystem is as mature as the aggregate, particularly the more obscure - targets. If you run into a problem, please check the LLVM bug database and submit a bug if - there isn't already one or ask on the LLVMdev - list.

    + targets. If you run into a problem, please check + the LLVM bug database and submit a bug if + there isn't already one or ask on + the LLVMdev + list.

    Known problem areas include:

    @@ -857,7 +708,7 @@ bindings, please express your intent on IRC or the developers list.

  • The CellSPU, MSP430, PTX and XCore backends are experimental.
  • The integrated assembler, disassembler, and JIT is not supported by - several targets. If an integrated assembler is not supported, then a + several targets. If an integrated assembler is not supported, then a system assembler is required. For more details, see the Target Features Matrix.
  • -- 2.7.4