only 7 more weeks to go.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128933 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2011-04-05 21:37:08 +00:00
parent b4c2bc2543
commit 0f310ee3c2

View File

@ -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 <2 x i32> are not iseld to mmx without emms.
random types like <2 x i32> 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>
<!--=========================================================================-->