forked from OSchip/llvm-project
parent
78c7e34485
commit
269ef9f6f0
|
@ -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 < 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>
|
||||
|
||||
<!--=========================================================================-->
|
||||
|
|
Loading…
Reference in New Issue