From e747b10bc3aa5122a7dfbe1255dfab42c52d83c8 Mon Sep 17 00:00:00 2001
From: Chris Lattner
Date: Sat, 10 Oct 2009 21:40:13 +0000
Subject: [PATCH] more updates
llvm-svn: 83735
---
docs/ReleaseNotes-2.6.html | 107 ++++++++++++++++++++++---------------
1 file changed, 64 insertions(+), 43 deletions(-)
diff --git a/docs/ReleaseNotes-2.6.html b/docs/ReleaseNotes-2.6.html
index 9b00ab51183..2a86a9c5067 100644
--- a/docs/ReleaseNotes-2.6.html
+++ b/docs/ReleaseNotes-2.6.html
@@ -553,6 +553,30 @@ release includes a few major enhancements and additions to the optimizers:
+
+
+
Target Independent Code Generator Improvements
@@ -579,7 +603,7 @@ it run faster:
The Machine Sinking pass is now enabled by default. This pass moves
side-effect free operations down the CFG so that they are executed on fewer
paths through a function.
-
The code generator now performs "Stack slot coloring" of register spills,
+The code generator now performs "stack slot coloring" of register spills,
which allows spill slots to be reused. This leads to smaller stack frames
in cases where there are lots of register spills.
The register allocator has many improvements to take better advantage of
@@ -594,7 +618,10 @@ it run faster:
The instruction selector is better at propagating information about values
(such as whether they are sign/zero extended etc) across basic block
boundaries.
-
SelectionDAGS: New BuildVectorSDNode (r65296), and ISD::VECTOR_SHUFFLE (r69952 / PR2957)
+
The SelectionDAG datastructure has new nodes for representing buildvector
+ and vector shuffle operations. This
+ makes operations and pattern matching more efficient and easier to get
+ right.
The Prolog/Epilog Insertion Pass now has experimental support for performing
the "shrink wrapping" optimization, which moves spills and reloads around in
the CFG to avoid doing saves on paths that don't need them.
@@ -622,15 +649,28 @@ it run faster:
-- Preliminary support for addrspace 256 -> GS, 257 -> FS, known problems: CodeGenerator.html#x86_memory
-- Support for softfloat modes, typically used by OS kernels.
-
-- X86-64: better modeling of implicit zero extensions, eliminates a lot of redundant zexts
-- X86-64 TLS support for local exec and initial exec.
-- Better modeling of H registers as subregs.
-- Vector icmp/fcmp now work with SSE codegen.
-- SSE 4.2 support.
-- all global variable reference logic is now in ClassifyGlobalReference.
+- SSE 4.2 builtins are now supported.
+- GCC-compatible soft float modes are now supported, which are typically used
+ by OS kernels.
+- X86-64 now models implicit zero extensions better, which allows the code
+ generator to remove a lot of redundant zexts. It also models the 8-bit "H"
+ registers as sugregs, which allows they to be used in some tricky
+ situations.
+- X86-64 now supports the "local exec" and "initial exec" thread local storage
+ model.
+- The vector forms of the icmp and fcmp instructions now select to efficient
+ SSE operations.
+- The X86 backend has preliminary support for mapping address spaces to segment
+ register references. This allows you to write GS or FS relative memory
+ accesses directly in LLVM IR for cases where you know exactly what you're
+ doing (such as in an OS kernel). There are some known problems with this
+ support, but it works in simple cases.
+- The X86 code generator has been refactored to move all global variable
+ reference logic to one place
+ (X86Subtarget::ClassifyGlobalReference) which
+ makes it easier to reason about.
@@ -675,16 +715,19 @@ it run faster:
Preliminary support for processors, such as the Cortex-A8 and Cortex-A9,
that implement version v7-A of the ARM architecture. The ARM backend now
-supports both the Thumb2 and Advanced SIMD (Neon) instruction sets. The
-AAPCS-VFP "hard float" calling conventions are also supported with the
--float-abi=hard flag. These features are still somewhat experimental
-and subject to change. The Neon intrinsics, in particular, may change in future
-releases of LLVM.
+supports both the Thumb2 and Advanced SIMD (Neon) instruction sets.
+
+
The AAPCS-VFP "hard float" calling conventions are also supported with the
+-float-abi=hard flag.
+
+
The ARM calling convention code is now tblgen generated instead of C++
+ code.
- ARM AAPCS-VFP hard float ABI is supported.
- ARM calling convention code is now tblgen generated instead of manual.
- ARM: NEON support. neonfp for doing single precision fp with neon instead of VFP.
+
+
These features are still somewhat experimental
+and subject to change. The Neon intrinsics, in particular, may change in future
+releases of LLVM.
@@ -709,28 +752,6 @@ releases of LLVM.
-
-