X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FReleaseNotes.html;h=d1759f1c539b26575e10168051abadd05aec3950;hb=6568fe876c4b3b2f1ee9f326b52369a9b5c944b2;hp=6efb3ce85953b6dcd81d6aa1f5ee438c5e71c346;hpb=74032a5702c08c90879775a96d64bce72582ad1b;p=oota-llvm.git diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html index 6efb3ce8595..d1759f1c539 100644 --- a/docs/ReleaseNotes.html +++ b/docs/ReleaseNotes.html @@ -22,7 +22,7 @@
  • Known problems with the C Front-end
  • Known problems with the C++ Front-end
  • Known problems with the X86 Back-end -
  • Known problems with the Sparc Back-end +
  • Known problems with the SparcV9 Back-end
  • Known problems with the C back-end
  • Additional Information
  • @@ -71,8 +71,8 @@ href="http://llvm.cs.uiuc.edu/releases/">releases page.

    This is the fourth public release of the LLVM compiler infrastructure. This release primarily improves the performance of the -code produced by all aspects of the LLVM compiler and adds some new features, though it does fix a few +code produced by all aspects of the LLVM compiler and adds many new features, and fixes a few bugs as well.

    At this time, LLVM is known to correctly compile and run all C & C++ @@ -105,17 +105,41 @@ constrained to be the same as the CFG for the LLVM input code.

  • LLVM now has new loop unrolling and loop unswitching passes.
  • The induction variable substitution pass performs linear function test replacement and exit value replacement optimizations.
  • -
  • The LLVM Bytecode file format is now - documented.
  • -
  • LLVM now has first-class support for Accurate -Garbage Collection, enabling the use of aggressive copying and generational -collectors.
  • +
  • LLVM now has first-class support for Accurate Garbage Collection, enabling the use +of aggressive copying and generational collectors.
  • LLVM now includes an implementation of Andersen's interprocedural alias analysis algorithm.
  • Bugpoint can extract individual basic blocks to track down reduce miscompilation testcases.
  • -
  • LLVM and the C front-end now work under Win32 using the cygnus libraries. +
  • LLVM and the C front-end now work under Win32 using the +Cygwin runtime libraries. This includes the JIT compiler.
  • +
  • The LLVM code generator is now being documented.
  • +
  • There is a new tool, llvm-bcanalyzer. This tool can compute basic +statistics and bytecode density statistics on a module or function basis and +also dump out bytecode in a textual format that is lower level than assembly +(values are not resolved from slot numbers). It should only be of interest to +(a) those who are working to improve the bytecode format and (b) those who +really want to understand or document the details of the bytecode format.
  • +
  • The LLVM Bytecode file format is now +documented.
  • +
  • LLVM now provides an llvm.isunordered intrinsic for efficient +implementation of unordered floating point comparisons.
  • +
  • The llvmgcc front-end now supports the GCC builtins for ISO C99 floating +point comparison macros (e.g., __builtin_islessequal).
  • +
  • Now that there are more source files than can fit on a 32Kbyte command +line (Linux's limit), there's a new utility for searching the sources. The +llvmgrep tool in the utils directory combines an egrep and a find without +passing filenames through the command line. This improves performance +slightly. Simply run llvmgrep like you might egrep but leave off the file +names.
  • +
  • We now generate HTML documentation and man pages for the tools from a single +source (perl-style POD files).
  • +
  • The LLVM code generator can now dynamically load targets from shared +objects.
  • @@ -155,6 +179,12 @@ bytecode onto your terminal
  • [llvmgcc] type names are not emitted for structure typedefs
  • All documentation is now conformant to the HTML 4.01 (Strict) level.
  • +
  • The spurious "WARNING: Found global types that are not compatible" warning +produced when linking C++ programs has been fixed.
  • +
  • lli Doesn't Handle Exceptions From +Bytecode Reader
  • +
  • operator<< on a Value* now prints the address of the object instead of its contents.
  • +
  • [loopsimplify] Loop simplify is really slow on 252.eon
  • @@ -170,6 +200,10 @@ In this release, the following build problems were fixed: -disable/enable-povray and -disable-spec
  • shell scripts output by gccld don't work if you change PATH
  • +
  • [llvmgcc] llvmgcc does not compile +with gcc 3.4
  • +
  • [llvmgcc] obstack.h relies on +obsolete casts-as-lvalues GCC extension
  • @@ -215,6 +249,13 @@ operators into the strict versions when useful (such as "if (A < B || A
  • LLVM now has infrastructure for (simple and sparse conditional) constant propagation of function calls. It currently supports a few math library functions like sqrt/sin/cos/etc.
  • + +
  • The C backend now emits Syntactic +loops in the code to help C compilers whose optimizers do not recognize +loops formed from gotos (like GCC).
  • + +
  • Fixed: [sparcv9] null +often spilled to constant pool.
  • @@ -229,30 +270,44 @@ were fixed:

    Bugs in the LLVM Core:

      -
    1. [vmcore] Linker causes erroneous -asssertion
    2. [loopsimplify] Loop simplify incorrectly updates dominator information
    3. [tailduplicate] DemoteRegToStack breaks SSA form
    4. [X86] JIT miscompiles unsigned short to floating point cast
    5. +
    6. [jit] abort, don't warn, when +missing external functions encountered
    7. +
    8. [vmcore] Linker causes erroneous +asssertion
    9. [adce] Crash handling unreachable code that unwinds
    10. -
    11. [sparc] LLC can't emit 2 functions +
    12. [sparcv9] LLC can't emit 2 functions of the same name, both having constant pools
    13. [livevar] Live variables missed physical register use of aliased definition
    14. -
    15. Verifier misses malformed switch instruction
    16. +
    17. Verifier misses malformed switch +instruction
    18. +
    19. [asmwriter] Asm writer aborts if +an instruction is not embedded into a function
    20. +
    21. [X86] stackifier crash on floating +point setcc X, X

    Bugs in the C/C++ front-end:

      -
    1. [llvmgcc] Crash on use of undeclared -enum type
    2. [llvmgcc] Variable length array indexing miscompiled
    3. +
    4. [llvmgcc] Crash on use of undeclared +enum type
    5. +
    6. [llvmgcc] Errors handling function +prototypes that take opaque structs by-value
    7. +
    8. [llvmgcc] Crash compiling variable +length array of structures
    9. +
    10. [llvmgcc] miscompilation of staticly +initialized unsigned bitfields
    11. +
    12. [llvm-gcc] Crash casting function to void
    @@ -338,7 +393,7 @@ components, please contact us on the llvmdev list.