From 6fd928d133fcc86ccb2c902e2e83dbe4dcb92bae Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 21 Apr 2010 05:17:40 +0000 Subject: rough pass moving stuff into relevant sections, still much editing to do. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101987 91177308-0d34-0410-b5e6-96231b3b80d8 --- docs/ReleaseNotes.html | 243 ++++++++++++++++++++++++++----------------------- 1 file changed, 127 insertions(+), 116 deletions(-) (limited to 'docs') diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html index ba283d6..736ef37 100644 --- a/docs/ReleaseNotes.html +++ b/docs/ReleaseNotes.html @@ -60,10 +60,6 @@ main LLVM web page, this document applies to the next release, not the current one. To see the release notes for a specific release, please see the releases page.

- -

FIXME: llvm.org moved to new server, mention new logo, Ted and Doug new code - owners, web page in llvm-www repos.

- @@ -79,14 +75,9 @@ Almost dead code. @@ -393,87 +403,25 @@ in this section.

LLVM 2.7 includes several major new capabilities:

+
  • New MicroBlaze backend. http://en.wikipedia.org/wiki/MicroBlaze
  • -Extensible metadata solid. +
  • Extensible metadata solid.
  • -Debug info improvements: using metadata instead of llvm.dbg global variables. -This brings several enhancements including improved compile times. +
  • 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. +
  • Indirect branch + address of label (blog post), particularly useful for +interpreters.
  • + +
  • New instruction selector.
  • + + +libllvm2.7.so?? configure with --enable-shared 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. - @@ -487,7 +435,13 @@ llvm/ADT/iterator.h gone. expose new optimization opportunities:

    @@ -505,10 +459,28 @@ release includes a few major enhancements and additions to the optimizers:

    -

    Also, -anders-aa was removed

    + @@ -521,15 +493,21 @@ release includes a few major enhancements and additions to the optimizers:

    @@ -547,45 +525,42 @@ it run faster:

    - - - -
    -X86-32 and X86-64 Target Improvements -
    +Code generator MC'ized except for debug info and EH. -
    -

    New features of the X86 target include: -

    +New CodeGen Level CSE +Combiner-AA improvements, why not on by default? +Pre-regalloc tail duplication +New LSR with "full strength reduction" mode. Description? +Codegen level OptimizeExtsPass pass, takes advantage of x86 subregs. +Support for the GCC option -fno-schedule-insns +non-temporal load/store +MachineSSAUpdater.h +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 +GHC Haskell ABI / calling conv support. +Many improvements to debug info - -
    -PIC16 Target Improvements +X86-32 and X86-64 Target Improvements
    -

    New features of the PIC16 target include: +

    New features of the X86 target include:

    -

    Things not yet supported:

    +
  • PostRA scheduler for X86?
  • +
  • x86 sibcall / tailcall optimization in CCC mode.
  • +
  • X86: XMM subreg modeling for extraction of the low element.
  • -
    @@ -601,7 +576,12 @@ it run faster:

    @@ -649,7 +629,13 @@ it run faster:

    Other miscellaneous features include:

    @@ -667,18 +653,45 @@ on LLVM 2.6, this section lists some "gotchas" that you may run into upgrading from the previous release.

    +configure with --enable-libffi. + +
  • Debug information uses a completely different representation, an LLVM 2.6 +.bc file should work with LLVM 2.7, but debug info won't come forward.
  • +
  • The LLVM 2.6 (and earlier) "malloc" and "free" instructions got removed, + along with LowerAllocations pass. Now you should just use a call to the + malloc and free functions in libc. These calls are optimized as well as + the old instructions were.
  • +

    In addition, many APIs have changed in this release. Some of the major LLVM API changes are: