aboutsummaryrefslogtreecommitdiffstats
path: root/docs/ReleaseNotes.html
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2011-04-05 21:37:08 +0000
committerChris Lattner <sabre@nondot.org>2011-04-05 21:37:08 +0000
commit0f310ee3c2a56077ce7e3adf046b13ce19e9a841 (patch)
treead82d65fcc26ca29c557c56a39e0589dc3dff31c /docs/ReleaseNotes.html
parentb4c2bc25439bd4a226a85e1f3d8b420c07590622 (diff)
downloadexternal_llvm-0f310ee3c2a56077ce7e3adf046b13ce19e9a841.zip
external_llvm-0f310ee3c2a56077ce7e3adf046b13ce19e9a841.tar.gz
external_llvm-0f310ee3c2a56077ce7e3adf046b13ce19e9a841.tar.bz2
only 7 more weeks to go.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128933 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/ReleaseNotes.html')
-rw-r--r--docs/ReleaseNotes.html53
1 files changed, 48 insertions, 5 deletions
diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
index ac9d827..1bf3621 100644
--- a/docs/ReleaseNotes.html
+++ b/docs/ReleaseNotes.html
@@ -321,7 +321,8 @@ ELF MC support: on by default in clang. There are still known missing features
for human written assembly.
X86: Reimplemented all of MMX to introduce a new LLVM IR x86_mmx type. Now
- random types like &lt;2 x i32&gt; are not iseld to mmx without emms.
+ random types like &lt;2 x i32&gt; are not iseld to mmx without emms. The
+ -disable-mmx flag is gone now.
Some basic <a href="CodeGenerator.html#mc">internals documentation</a> for MC.
@@ -330,18 +331,23 @@ MC Assembler support for .file and .loc.
inline asm multiple alternative constraint support.
-LoopIdiom: memset/memcpy formation
+LoopIdiom: memset/memcpy formation. Build with -ffreestanding or -fno-builtin
+ if your memcpy is being compiled into infinite recursion.
+
+TargetLibraryInfo
X86 support for FS/GS relative loads and stores using address space 256/257 are
reliable now.
ARM: New code placement pass.
+unnamed_addr + PR8927
PointerTracking has been removed from mainline, moved to ClamAV.
EarlyCSE pass.
+LoopInstSimplify pass.
- DIBuilder provides simpler interface for front ends like Clang to encode debug info in LLVM IR.
- This interface hides implementation details (e.g. DIDerivedType, existence of compile unit etc..) that any front end should not know about.
@@ -367,7 +373,16 @@ ARM: Improved code generation for Cortex-A8 and Cortex-A9 CPUs.
Scheduler now models operand latency and pipeline forwarding.
error_code + libsystem + PathV2 changes
-
+ The system_error header from C++0x was added.
+ * Use if (error_code ec = function()) to check for error conditions
+ from functions which return it.
+ * error_code::message returns a human readable description of the error.
+
+ PathV1 has been deprecated in favor of PathV2 (sorry I didn't finish
+ this before the release).
+ * No Path class, use a r-value convertible to a twine instead.
+ * Assumes all paths are UTF-8.
+
new macho-dump tool
Major regalloc rewrite, not on by default for 2.9 and not advised to use it.
@@ -410,15 +425,43 @@ Countless ARM microoptimizations.
Speedups to various mid-level passes:
GVN is much faster on functions with deep dominator trees / lots of BBs.
- DomTree and DominatorFrontier are much faster to compute.
+ DomTree and DominatorFrontier are much faster to compute, and preserved by
+ more passes (so they are computed less often)
new 'hotpatch' attribute: LangRef.html#fnattrs
+
+APInt API changes, see PR5207.
+
+DSE is more aggressive with stores of different types: e.g. a large store
+ following a small one to the same address.
+
+New naming rules in coding standards: CodingStandards.html#ll_naming
+
+LiveDebugVariables is a new pass that keeps track of debugging information for
+ user variables that are kept in registers in optimized builds.
+
+We now optimize various idioms for overflow detection into check of the flag
+ register on various CPUs, e.g.:
+ unsigned long t = a+b;
+ if (t &lt; a) ...
+ into:
+ addq %rdi, %rbx
+ jno LBB0_2
+
+X86: Much better codegen for several cases using adc/sbb instead of cmovs for
+ conditional increment and other idioms.
+
+MVT::Flag renamed to MVT::Glue
+
+Removed the PartialSpecialization pass, it was unmaintained and buggy.
+
</pre></li>
</ul>
-Still todo: [101129-110228]
+Still todo: [110117-110228]
+
</div>
<!--=========================================================================-->