From: Chris Lattner Date: Sat, 18 Nov 2006 07:51:14 +0000 (+0000) Subject: first draft of 1.9 release notes X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=2629922054f1266552cb3dcc54691b15674399a3;p=oota-llvm.git first draft of 1.9 release notes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31845 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html index c5570690f77..932ddc5d8dc 100644 --- a/docs/ReleaseNotes.html +++ b/docs/ReleaseNotes.html @@ -62,7 +62,8 @@ href="http://llvm.org/releases/">releases page.

This is the tenth public release of the LLVM Compiler Infrastructure. This -release incorporates a large number of enhancements and new features. +release incorporates a large number of enhancements, new features, and bug +fixes. We recommend that all users of previous LLVM versions upgrade.

@@ -73,41 +74,106 @@ release incorporates a large number of enhancements and new features. -
DWARF debugging -support for X86/ELF
+
New X86-64 Backend
-

The llvm-gcc4 C front-end now generates debugging info for C and C++ for -X86/ELF platforms (Linux). This extends the PPC/Darwin and X86/Darwin debugging -support available in release 18.8 DWARF is a standard debugging format used on -many platforms.

+

LLVM 1.9 now fully supports the x86-64 instruction set on Mac OS/X, and +supports it on Linux (and other operating systems) when compiling in -static +mode. LLVM includes JIT support for X86-64, and supports both Intel EMT-64T +and AMD-64 architectures. The X86-64 instruction set permits addressing a +64-bit addressing space and provides the compiler with twice the +number of integer registers to use.

-
Signed Instructions
+
Link-Time Optimization integration +with native linkers
-

As a step towards making LLVM's integer types signless, several new -instructions have been added to LLVM. The DIV instruction has become UDIV, SDIV, -and FDIV. The REM instruction has become UREM, SREM and FREM. The SHR -instruction has become ASHR and LSHR. See the Language - Reference for details on these new instructions.

+

LLVM now includes liblto which can +be used to integrate LLVM Link-Time Optimization support into a native linker. +This allows LLVM .bc to transparently participate with linking an application, +even when some .o files are in LLVM form and some are not.

-
New Feature C
+
DWARF debugging +support for Linux, Cygwin and MinGW on X86
-

Describe feature C here.

+

llvm-gcc4 now supports generating debugging info for Linux, Cygwin and MinGW. +This extends the PPC/Darwin and X86/Darwin debugging support available in the +1.8 release. DWARF is a standard debugging format used on many platforms.

-
New Feature D
+
Optimizer +Improvements
-

Describe feature D here.

+

The mid-level optimizer is now faster and produces better code in many cases. + Significant changes include:

+ + +
-
New Feature E
+
Code +Generator Enhancements
+
-

Describe feature E here.

+

+The LLVM Target-Independent code generator now supports more target features and +optimizes many cases more aggressively. New features include: +

+ + + +

In addition, the LLVM target description format has itself been extended in + several ways:

+ + + +

Further, several significant target-specific enhancements are included in +LLVM 1.9:

+ + +
@@ -121,38 +187,41 @@ instruction has become ASHR and LSHR. See the Language

More specific changes include:

-Significant Changes in LLVM 1.8 +Significant API Changes in LLVM 1.9
+ +

Several significant API changes have been made. If you are maintaining +out-of-tree code, please be aware that:

+
@@ -174,7 +243,8 @@ LLVM 1.8. The LLVM "Sparc" backend replaces it.
  • Sun UltraSPARC workstations running Solaris 8.
  • Intel and AMD machines running on Win32 with the Cygwin libraries (limited support is available for native builds with Visual C++).
  • -
  • PowerPC and X86-based Mac OS X systems, running 10.2 and above.
  • +
  • PowerPC and X86-based Mac OS X systems, running 10.2 and above in 32-bit and + 64-bit modes.
  • Alpha-based machines running Debian GNU/Linux.
  • Itanium-based machines running Linux and HP-UX.
  • @@ -220,6 +290,7 @@ components, please contact us on the -filetype=asm" (the default) is the only supported value for the -filetype llc option. @@ -229,16 +300,138 @@ components, please contact us on the - Known problems with the Build System + Known problems with the X86 back-end + + +
    + + + +
    + + +
    + Known problems with the PowerPC back-end +
    + +
    + + + +
    + + +
    + Known problems with the SPARC back-end +
    + +
    + + + +
    + + +
    + Known problems with the C back-end +
    + +
    + + + +
    + + +
    + Known problems with the Alpha back-end
    +
    + + +
    + Known problems with the IA64 back-end +
    + +
    + + +
    + +
    + Known problems with the ARM back-end +
    + +
    + + + +
    @@ -264,29 +457,15 @@ components, please contact us on the

    -llvm-gcc3 has many significant problems that are fixed by llvm-gcc4. -Two major ones include:

    - -

    llvm-gcc4 is far more stable and produces better code than llvm-gcc3, but -does not currently support Link-Time-Optimization or C++ Exception Handling, +does not currently support Link-Time +Optimization or C++ Exception Handling, which llvm-gcc3 does.

    +

    llvm-gcc4 does not support the GCC indirect +goto extension, but llvm-gcc3 does.

    +
    @@ -302,28 +481,12 @@ which llvm-gcc3 does.

    support for floating point data types of any size other than 32 and 64 bits. -
  • The following Unix system functionality has not been tested and may not -work: -
      -
    1. sigsetjmp, siglongjmp - These are not turned into the - appropriate invoke/unwind instructions. Note that - setjmp and longjmp are compiled correctly. -
    2. getcontext, setcontext, makecontext - - These functions have not been tested. -
  • -
  • Although many GCC extensions are supported, some are not. In particular, the following extensions are known to not be supported:
    1. Local Labels: Labels local to a block.
    2. Nested Functions: As in Algol and Pascal, lexical scoping of functions.
    3. Constructing Calls: Dispatching a call to another function.
    4. -
    5. Extended Asm: Assembler instructions with C expressions as operands.
    6. -
    7. Constraints: Constraints for asm operands.
    8. -
    9. Asm Labels: Specifying the assembler name to use for a C symbol.
    10. -
    11. Explicit Reg Vars: Defining variables residing in specified registers.
    12. -
    13. Vector Extensions: Using vector instructions through built-in functions.
    14. -
    15. Target Builtins: Built-in functions specific to particular targets.
    16. Thread-Local: Per-thread variables.
    17. Pragmas: Pragmas accepted by GCC.
    @@ -402,6 +565,12 @@ work:
  • Empty Structures: Structures with no members.
  • Variadic Macros: Macros with a variable number of arguments.
  • Escaped Newlines: Slightly looser rules for escaped newlines.
  • +
  • Extended Asm: Assembler instructions with C expressions as operands.
  • +
  • Constraints: Constraints for asm operands.
  • +
  • Asm Labels: Specifying the assembler name to use for a C symbol.
  • +
  • Explicit Reg Vars: Defining variables residing in specified registers.
  • +
  • Vector Extensions: Using vector instructions through built-in functions.
  • +
  • Target Builtins: Built-in functions specific to particular targets.
  • Subscripting: Any array can be subscripted, even if not an lvalue.
  • Pointer Arith: Arithmetic on void-pointers and function pointers.
  • Initializers: Non-constant initializers.
  • @@ -445,27 +614,14 @@ itself.

    - -
    Bugs
    - -
    - - - -
    -
    Notes
    -
    - -
    - Known problems with the C back-end -
    - -
    - - - -
    - - -
    - Known problems with the X86 back-end -
    - -
    - - - -
    - - -
    - Known problems with the PowerPC back-end -
    - -
    - - - -
    - - -
    - Known problems with the Alpha back-end -
    - -
    - - - -
    - - -
    - Known problems with the IA64 back-end -
    - -
    - - - -
    - - -
    - Known problems with the SPARC back-end -
    -
    - - - -
    - - -
    - Known problems with the ARM back-end -
    - -
    - - - -