From: Chris Lattner Date: Thu, 8 Oct 2009 06:27:53 +0000 (+0000) Subject: checkpoint, this is still not comprehendible. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=7b0a6816e7eeb9b2923706f65557e55d96f7246f;p=oota-llvm.git checkpoint, this is still not comprehendible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83530 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/ReleaseNotes-2.6.html b/docs/ReleaseNotes-2.6.html index 1ac46e8c36c..5549914df40 100644 --- a/docs/ReleaseNotes-2.6.html +++ b/docs/ReleaseNotes-2.6.html @@ -52,26 +52,8 @@ current one. To see the release notes for a specific release, please see the - Many new papers added to /pubs/ - Machine LICM, hoists things like constant pool loads, loads from readonly stubs, vector constant synthesization code, etc. - Machine Sinking - Regalloc improvements for commuting, various spiller peephole optimizations, cross-class coalescing. - Support for debug line numbers when optimization enabled - gold lto plugin - - target-specific intrinsics (r63765) - llc -enable-value-prop, propagation of value info (sign/zero ext info) from one MBB to another - interpreter + libffi - LLVMContext - Preliminary support for addrspace 256 -> GS, 257 -> FS, known problems: CodeGenerator.html#x86_memory - -Add support for the PowerPC 64-bit SVR4 ABI. - - NSW/NUW/exact div - Inbounds for GEP - SRoA improvements for vector unions, memset, arbitrary weird bitfield accesses etc. It now produces "strange" sized integers. - pre-alloc splitter?? - X86: Support for softfloat modes, typically used by OS kernels. + + MC: MCSection, MCAsmInfo MCInstPrinter did it make it in? @@ -83,94 +65,23 @@ Add support for the PowerPC 64-bit SVR4 ABI. ELF Writer? How stable? - LSR promotes int induction variables to 64-bit on 64-bit targets, major perf boost for numerical code. - LSR now analyzes pointer expressions (e.g. getelementptrs), not just integers. - Stack slot coloring for register spills (denser stack frames) - SelectionDAGS: New BuildVectorSDNode (r65296), and ISD::VECTOR_SHUFFLE (r69952 / PR2957) - New PrettyStackTrace, crashes of llvm tools should give some indication of what the compiler was doing at the time of the crash (e.g. running a pass), and print out command line arguments. - new linkage types linkonce_odr, weak_odr, linker_private, and available_externally. - Inliner reuse stack space when inlining arrays? - - Regalloc hints for allocation stuff: Evan r73381/r73671. Finished/enabled? - API Cleanup: - no use of hash_set/hash_map, no more llvm::OStream - Use raw_ostream for everything, killed off llvm/Streams.h and DOUT - - Mips now supports O32 Calling Convention - - StringRef class, Twine class. - New BlackFin backend. - +APIs: + Shrink wrapping support in PEI, what is the state of it? - X86-64: better modeling of implicit zero extensions, eliminates a lot of redundant zexts - X86-64 TLS support for local exec and initial exec. - X86 - Better modeling of H registerts as subregs. - Getelementpr instruction now allows any integer type for array/pointer indexes. - - include/llvm/Analysis/LiveValues.h => dead?? - lib/Analysis/LoopVR.cpp ==> dead?? - include/llvm/CodeGen/LazyLiveness.h ==> dead? - lib/Transforms/IPO/MergeFunctions.cpp ==> dead? - llvm/Analysis/PointerTracking.h ==> dead?? - PRedSimplify -> Ask vmkit if it is still useful and for testcases. - - ARM calling convention code is now tblgen generated instead of manual. - ARM: NEON support. neonfp for doing single precision fp with neon instead of VFP. - Tblgen now supports multiclass inheritance. - Unladen swallow as user? - Loop index split disabled by default? - - New WeakVH and AssertingVH and CallbackVH classes. - New llvm/ADT/Triple class. - Removed the IA64 backend. - Profile info improvements by Andreas Neustifter. - PostRA scheduler improvements David Goodwin. + - New MSP430 and SystemZ backends. - llvm-gcc now supports a new TCE target. - klee web page at klee.llvm.org - New llvm/System/Atomic.h, llvm/System/RWMutex.h for portable atomic ops, rw locks. - llvm_start_multithreaded: ProgrammersMAnual.html#threading - - Tablegen now supports a number of new string and list operations like - !(subst), !(foreach), !car, !cdr, !null, !if, !cast. - New fadd, fsub, fmul instructions and classes. - New MachineVerifier pass. - Enabled GVN Load PRE. - ARM AAPCS-VFP hard float ABI is supported. - LLVM build now builds all libraries as .a files instead of some libraries as relinked .o files. This requires some APIs like InitializeAllTargets.h. TargetRegistry! - - ARM Thumb2 support: status? - CBE status: not part of the release criteria. - - New SourceMgr, SMLoc classes for simple parsers with caret diagnostics and #include support, (used by - tablegen, llvm-mc, the .ll parser, FileCheck, etc) - FileCheck! + CHECK-NEXT - New compiler-rt project. - New Static Single Information (SSI) construction pass (not used by anything yet, experimental). - llvm_report_error() error handling API (llvm/Support/ErrorHandling.h) - - x86: Vector icmp/fcmp now work with SSE codegen. - X86: all global variable reference logic is now in ClassifyGlobalReference. - JIT support for oprofile (r75279), configure with --with-oprofile. Now we get line # and function info for JIT'd functions. - Mention gcc plugin. - - New EngineBuilder class for creating JITs: r76276 Reid Kleckner - - -asm-verbose now prints location info (with -g) and loop nest info. - JIT now supports generating more than 16M of code. - -removed the BigBlock register allocator, it had bitrotted. -Target intrinsics can now return multiple results. - - SSE 4.2 support. - Ada bindings for LLVM IR. - Many extensions to the C APIs. + @@ -406,6 +321,7 @@ machine code using LLVM's JIT.

minor improvements. Some of the major improvements and new features are listed in this section.

+ @@ -418,7 +334,15 @@ in this section.

LLVM 2.6 includes several major new capabilities:

@@ -453,7 +377,14 @@ includes support for the C, C++, Objective-C, Ada, and Fortran front-ends.

can be useful if you are writing a front-end for LLVM:

@@ -470,7 +401,11 @@ release includes a few major enhancements and additions to the optimizers:

@@ -489,7 +424,22 @@ it run faster:

@@ -504,7 +454,16 @@ it run faster:

@@ -519,18 +478,18 @@ it run faster:

Things not yet supported:

@@ -554,21 +513,74 @@ AAPCS-VFP "hard float" calling conventions are also supported with the and subject to change. The Neon intrinsics, in particular, may change in future releases of LLVM. + + ARM AAPCS-VFP hard float ABI is supported. + ARM calling convention code is now tblgen generated instead of manual. + ARM: NEON support. neonfp for doing single precision fp with neon instead of VFP. + + + + +
+

New features of other targets include: +

+ +
    +
  • Add support for the PowerPC 64-bit SVR4 ABI.
  • +
  • Mips now supports O32 Calling Convention.
  • +
+ +
-

New features include:

    -
  • Something wonderful!
  • +
  • New EngineBuilder class for creating JITs: r76276
  • + New PrettyStackTrace, crashes of llvm tools should give some indication of what the compiler was doing at the time of the crash (e.g. running a pass), and print out command line arguments. + StringRef class, Twine class. + New WeakVH and AssertingVH and CallbackVH classes. + New llvm/ADT/Triple class. + llvm_report_error() error handling API (llvm/Support/ErrorHandling.h) + New llvm/System/Atomic.h, llvm/System/RWMutex.h for portable atomic ops, rw locks. + New SourceMgr, SMLoc classes for simple parsers with caret diagnostics and #include support, (used by + tablegen, llvm-mc, the .ll parser, FileCheck, etc) + +
      + + +
+ + + + +
+

Other miscellaneous features include:

+ +
    +
  • interpreter + libffi
  • +
  • JIT now supports generating more than 16M of code.
  • +
  • Users can now register +a JITEventListener +to receive callbacks when the JIT emits or frees machine code. The +OProfile support uses this mechanism.
  • + JIT support for oprofile (r75279), configure with --with-oprofile. Now we get line # and function info for JIT'd functions. + +
  • Profile info improvements by Andreas Neustifter.
  • +
  • Many extensions to the C APIs.
@@ -587,14 +599,23 @@ from the previous release.

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

+ + API Cleanup: + no use of hash_set/hash_map, no more llvm::OStream + Use raw_ostream for everything, killed off llvm/Streams.h and DOUT + @@ -809,9 +830,6 @@ processors, thumb programs can crash or produce wrong results (PR1388).
  • Compilation for ARM Linux OABI (old ABI) is supported but not fully tested.
  • -
  • There is a bug in QEMU-ARM (<= 0.9.0) which causes it to incorrectly - execute -programs compiled with LLVM. Please use more recent versions of QEMU.