diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
index ad4c14294a8..f7c3edefb36 100644
--- a/docs/ReleaseNotes.html
+++ b/docs/ReleaseNotes.html
@@ -872,8 +872,8 @@ be used to verify some algorithms.
LLVM now includes a pass to optimize retain/release calls for the
Automatic
Reference Counting (ARC) Objective-C language feature (in
- lib/Transforms/ObjCARC). It is a decent example of implementing a
- source-language-specific optimization in LLVM.
+ lib/Transforms/Scalar/ObjCARC.cpp). It is a decent example of implementing
+ a source-language-specific optimization in LLVM.
@@ -889,35 +889,32 @@ be used to verify some algorithms.
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.
+ in. For more information, please see
+ the Intro
+ to the LLVM MC Project Blog Post.
- - The ELF object streamers are much more full featured.
- - Target dependent relocation handling has been refactored into the Targets.
- - Early stage MC-JIT infrastructure has been implemented.
+ - The MC layer has undergone significant refactoring to eliminate layering
+ violations that caused it to pull in the LLVM compiler backend code.
+ - The ELF object file writers are much more full featured.
+ - The integrated assembler now supports #line directives.
+ - An early implementation of a JIT built on top of the MC framework (known
+ as MC-JIT) has been implemented and will eventually replace the old JIT.
+ It emits object files direct to memory and uses a runtime dynamic linker to
+ resolve references and drive lazy compilation. The MC-JIT enables much
+ greater code reuse between the JIT and the static compiler and provides
+ better integration with the platform ABI as a result.
+
+ - The assembly printer now makes uses of assemblers instruction aliases
+ (InstAliases) to print simplified mneumonics when possible.
+ - TableGen can now autogenerate MC expansion logic for pseudo
+ instructions that expand to multiple MC instructions (through the
+ PseudoInstExpansion class).
+
+ - XXX: llvm-objdump / dwarf parser library / llvm-dwarfdump (d0k)
+ object file parsing stuff and llvm-size (mspencer). Status?
-The MC-JIT is a major new feature for MC, and will eventually grow to replace
-the current JIT implementation. It emits object files direct to memory and
-uses a runtime dynamic linker to resolve references and drive lazy compilation.
-The MC-JIT enables much greater code reuse between the JIT and the static
-compiler and provides better integration with the platform ABI as a result.
-
-For more information, please see
- the Intro
- to the LLVM MC Project Blog Post.
-
-
- InstAliases now automatically used in the asmprinter where they are shorter.
-
- Table generated MC expansion logic for pseudo instructions that expand to multiple MC instructions through the PseudoInstExpansion class. (JimG)
-
- #line directives in integrated assembler
-
- llvm-rtdyld: JimG
- llvm-objdump / dwarf parser library / llvm-dwarfdump (d0k)
- object file parsing stuff and llvm-size (mspencer)
-
@@ -932,20 +929,17 @@ compiler and provides better integration with the platform ABI as a result.
make it run faster:
-
- better performance for indirect gotos through new tail dup pass.
+- LLVM generates substantially better code for indirect gotos due to a new
+ tail duplication pass, which can be a substantial performance win for
+ interpreter loops that use them.
+- Exception handling and debug information is now emitted with CFI directives,
+ yielding much smaller executables for some C++ applications.
+
- Codegen now supports vector "select" operations on vector comparisons, turning
- them into various optimized code sequences (e.g. using the SSE4/AVX "blend"
- instructions).
-
- EH and debug information produced with CFI directives, yielding smaller executables: http://blog.mozilla.com/respindola/2011/05/12/cfi-directives/
-
- Domain fixing pass is now target independent (ExecutionDepsFix pass). (Jakob)
-
-
+- The code generator now supports vector "select" operations on vector
+ comparisons, turning them into various optimized code sequences (e.g.
+ using the SSE4/AVX "blend" instructions).
+- XXX: Domain fixing pass is now target independent (ExecutionDepsFix pass). (Jakob)
@@ -959,29 +953,30 @@ compiler and provides better integration with the platform ABI as a result.
New features and major changes in the X86 target include:
- - The X86 backend, assembler and disassembler now completely support AVX.
- To enable it pass
-mavx
to the compiler.
-
- - The X86 backend now supports
- all inline assembly that uses the X86
- floating point stack.
-
- - The CRC32 intrinsics have been renamed. The intrinsics were previously
-
@llvm.x86.sse42.crc32.[8|16|32]
- and @llvm.x86.sse42.crc64.[8|64]
. They have been renamed to
- @llvm.x86.sse42.crc32.32.[8|16|32]
and
- @llvm.x86.sse42.crc32.64.[8|64]
.
-
- X86: inline assembler supports .code32 and .code64.
- AVX support, assembler, compiler and disassembler.
- X86 backend support for NaCl (David Meyer / Nick L)
- SSE domain fixing code enabled for AVX (Bruno/Jakob).
- X86 backend synthesizes horizontal add/sub instructions from generic code.
- X86: Tons of encoding improvements and new instructions (e.g. Atom, Ivy Bridge,
- and BMI instructions)
- added to assembler and disassembler (Craig Topper)
- X86-64 generates smaller and faster code at -O0 (fast isel improvements)
+- The X86 backend, assembler and disassembler now have full support for AVX 1.
+ To enable it pass
-mavx
to the compiler. AVX2 implementation is
+ underway on mainline.
+- The integrated assembler and disassembler now support a broad range of new
+ instructions including Atom, Ivy Bridge, SSE4a/BMI instructions, rdrand and many others.
+- The X86 backend now fully supports the X87
+ floating point stack inline assembly constraints.
+- The integrated assembler now supports the .code32 and
+ .code64 directives to switch between 32-bit and 64-bit
+ instructions.
+- The X86 backend now synthesizes horizontal add/sub instructions from generic
+ vector code when the appropriate instructions are enabled.
+- The X86-64 backend generates smaller and faster code at -O0 due to
+ improvements in fast instruction selection.
+- Native Client
+ subtarget support has been added.
+- The CRC32 intrinsics have been renamed. The intrinsics were previously
+
@llvm.x86.sse42.crc32.[8|16|32]
+ and @llvm.x86.sse42.crc64.[8|64]
. They have been renamed to
+ @llvm.x86.sse42.crc32.32.[8|16|32]
and
+ @llvm.x86.sse42.crc32.64.[8|64]
.