diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html index 09446c97483..e903080977e 100644 --- a/docs/ReleaseNotes.html +++ b/docs/ReleaseNotes.html @@ -4,11 +4,11 @@
-Written by the LLVM Team
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:
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:
__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).
-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.
+The 3.2 release has the following notable changes:
+ +The 3.2 release has the following notable changes:
+ +Within the LLVM 3.1 time-frame there were the following highlights:
+Within the LLVM 3.2 time-frame there were the following highlights:
<atomic>
header is now passing all tests, when
- compiling with clang and linking against the support code from
- compiler-rt.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:
+ +Within the LLVM 3.1 time-frame there were the following highlights:
+Within the LLVM 3.2 time-frame there were the following highlights:
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.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.LLVM 3.1 includes several major changes and big features:
+LLVM 3.2 includes several major changes and big features:
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:
-unroll-runtime
flag.-vectorize
to run this pass along with some associated
- post-vectorization cleanup passes. For more information, see the EuroLLVM
- 2012 slides:
- Autovectorization with LLVM.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.MachineRegisterInfo
now allows the reserved registers to be
- frozen when register allocation starts. Target hooks should use the
- MRI->canReserveReg(FramePtr)
method to avoid accidentally
- disabling frame pointer elimination during register allocation.MachineOperand
provides a compact
- representation of large clobber lists on call instructions. The register
- mask operand references a bit mask of preserved registers. Everything else
- is clobbered.We added new TableGen infrastructure to support bundling for @@ -593,11 +527,14 @@ Release Notes.
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
.
__builtin_expect
.
+
New features and major changes in the X86 target include:
New features of the ARM target include:
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. +New features and major changes in the MIPS target include:
An outstanding conditional inversion bug was fixed in this release.
- -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.
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.
TargetOptions
class, which is local to each
- TargetMachine
. As a consequence, the associated flags will
- no longer be accepted by clang -mllvm. This includes:
-llvm::PrintMachineCode
llvm::NoFramePointerElim
llvm::NoFramePointerElimNonLeaf
llvm::DisableFramePointerElim(const MachineFunction &)
llvm::LessPreciseFPMADOption
llvm::LessPrecideFPMAD()
llvm::NoExcessFPPrecision
llvm::UnsafeFPMath
llvm::NoInfsFPMath
llvm::NoNaNsFPMath
llvm::HonorSignDependentRoundingFPMathOption
llvm::HonorSignDependentRoundingFPMath()
llvm::UseSoftFloat
llvm::FloatABIType
llvm::NoZerosInBSS
llvm::JITExceptionHandling
llvm::JITEmitDebugInfo
llvm::JITEmitDebugInfoToDisk
llvm::GuaranteedTailCallOpt
llvm::StackAlignmentOverride
llvm::RealignStack
llvm::DisableJumpTables
llvm::EnableFastISel
llvm::getTrapFunctionName()
llvm::EnableSegmentedStacks
MDBuilder
class has been added to simplify the creation
- of metadata.In addition, some tools have changed in this release. Some of the changes are:
-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.
-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.