-Extensible metadata solid.
-
-Debug info improvements: using metadata instead of llvm.dbg global variables.
-This brings several enhancements including improved compile times.
-
-New instruction selector.
-GHC Haskell ABI/ calling conv support.
-Pre-Alpha support for unions in IR.
-New InlineHint and StackAlignment function attributes
-Code generator MC'ized except for debug info and EH.
-New SCEV AA pass: -scev-aa
-Inliner reuses arrays allocas when inlining multiple callers to reduce stack usage.
-MC encoding and disassembler apis.
-Optimal Edge Profiling?
-Instcombine is now a library, has its own IRBuilder to simplify itself.
-New llvm/Support/Regex.h API. FileCheck now does regex's
-Many subtle pointer invalidation bugs in Callgraph have been fixed and it now uses asserting value handles.
-MC Disassembler (with blog post), MCInstPrinter. Many X86 backend and AsmPrinter simplifications
-Various tools like llc and opt now read either .ll or .bc files as input.
-Malloc and free instructions got removed, along with LowerAllocations pass.
-compiler-rt support for ARM.
-completely llvm-gcc NEON support.
-Can transcode from GAS to intel syntax with "llvm-mc foo.s -output-asm-variant=1"
-JIT debug information with GDB 7.0
-New CodeGen Level CSE
-CMake can now run tests, what other improvements?
-ARM/Thumb using reg scavenging for stack object address materialization (PEI).
-New SSAUpdater and MachineSSAUpdater classes for unstructured ssa updating,
- changed jump threading, GVN, etc to use it which simplified them and speed
- them up.
-Combiner-AA improvements, why not on by default?
-Pre-regalloc tail duplication
-x86 sibcall / tailcall optimization in CCC mode.
-New LSR with "full strength reduction" mode. Description?
-Codegen level OptimizeExtsPass pass, takes advantage of x86 subregs.
-Better code size analysis in loop unswitch, inliner code split out to a new
- CodeMetrics class for reuse.
-The ARM backend now has good support for ARMv4 backend (tested on StrongARM
- hardware), previously only supported ARMv4T and newer.
-Half-float support in APFloat
-Indirect branch + address of label (blog post), particularly useful for interpreters.
-Many changes to the pass ordering for improved optimization effectiveness.
-BasicAA improved to be less dependent on "type safe" pointers, it can now look
- through bitcasts more aggressively.
-GVN PHI Translation improvements. blog post: http://blog.llvm.org/2009/12/advanced-topics-in-redundant-load.html
-llvm.objectsize.
-MachineSSAUpdater.h
-PostRA scheduler for X86?
-llvm.dbg.value, not being used by default though, more in 2.8. Many improvements to debug info
-Support for the GCC option -fno-schedule-insns
-non-temporal load/store
-libllvm2.7.so?? configure with --enable-shared
-dbgs() and -debug-buffer-size=N
-New MicroBlaze backend. http://en.wikipedia.org/wiki/MicroBlaze
-XMM subreg modeling for extraction of the low element.
-
-
-Opt now works conservatively if no target data is set (is this fully working?)
-Target data now has notion of 'native' integer data types which optimizations can use.
-ARM backend generates instructions in unified assembly syntax.
-New Analysis/InstructionSimplify.h interface for simplifying instructions that don't exist.
-Jump threading is now much more aggressive at simplifying correlated
- conditionals and threading blocks with otherwise complex logic. CondProp pass
- removed (functionality merged into jump threading).
-X86 and XCore supports returning arbitrary return values, returning too many values is
- supported by returning through a hidden pointer.
-verbose-asm now produces information about spill slots and loop nests
-
-
-Defaults to RTTI off (smaller code size!), packagers should build with make REQUIRE_RTTI=1.
-AndersAA got removed
-PredSimplify, LoopVR, GVNPRE, RSProfiling (random sampling profiling) got removed.
-LLVM command line tools now overwrite their output, before they would only do this with -f.
-DOUT removed, use DEBUG(errs() instead.
-Much stuff converted to use raw_ostream instead of std::ostream.
-TargetAsmInfo renamed to MCAsmInfo
-llvm/ADT/iterator.h gone.
-
-