From: Chris Lattner Date: Sat, 6 Dec 2003 20:22:41 +0000 (+0000) Subject: Cleanup the release notes in preparation for the release. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=a509996df2f7840a569e1f28894b55c14eebb8ad;p=oota-llvm.git Cleanup the release notes in preparation for the release. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10294 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html index 24000707f9d..885a07774eb 100644 --- a/docs/ReleaseNotes.html +++ b/docs/ReleaseNotes.html @@ -71,22 +71,44 @@ href="http://llvm.cs.uiuc.edu/releases/">releases page.

This is the second public release of the LLVM compiler infrastructure. This -release implements the following new features:

+release is primarily a bugfix release, dramatically improving the C/C++ +front-end, and improving support for C++ in the LLVM core. This release also +features a few new features, such as a simple profiler, support for Mac OS/X, +and better interoperability with external source bases.

+ +

At this time, LLVM is known to correctly compile the SPEC CPU2000 benchmarks +(X86 only), the Olden benchmarks, and the Ptrdist benchmarks along with +many other programs. LLVM now also works with a fairly broad variety of +C++ programs, though it has still received much less testing than the C +front-end. +

+ +

+Note that the Sparc and X86 backends do not currently support exception throwing +or long jumping (including 253.perlbmk in SPEC). For these programs, you must +use the C backend. Support for unwinding will be added in a future release. +

+ + + +
+This release implements the following new features: +
  1. A new LLVM profiler, similar to gprof is available
  2. -
  3. LLVM and the C/C++ front-end now compile on Mac OSX! Mac OSX users can +
  4. LLVM and the C/C++ front-end now compile on Mac OS/X! Mac OS/X users can now explore the LLVM optimizer with the C backend (note that LLVM requires GCC -3.3 on Mac OSX).
  5. +3.3 on Mac OS/X).
  6. LLVM has been moved into an 'llvm' C++ namespace, for easier integration with third-party -code. Note that due to a bug in GDB 5.x, to debug namespacified LLVM code, -you will need to upgrade to GDB 6.
  7. +code. Note that lack of namespace handling in GDB 5.x, you will probably want to +upgrade to GDB 6 or better to debug LLVM code.
  8. The build system now copies Makefiles dynamically from the source tree to the @@ -110,7 +132,11 @@ The configure script will now configure all projects placed in the
-

In this release, the following missing features were implemented:

+ + +
+In this release, the following missing features were implemented: +
  1. The interpreter does not support @@ -124,8 +150,12 @@ files
-

In this release, the following Quality of Implementation issues were -fixed:

+ + +
+In this release, the following Quality of Implementation issues were +fixed: +
    @@ -152,57 +182,69 @@ cases). generated N^2 amounts of duplicated cleanup code in some cases.
-

In this release, the following bugs in the previous release were fixed:

+ + +
+In this release, the following bugs in the previous release were fixed: +
+ +

Bugs in the LLVM Core:

  1. [inliner] Inlining invoke with PHI in unwind target is broken
  2. [linker] linkonce globals should link successfully to external globals
  3. -
  4. C++ frontend can crash when compiling virtual base classes
  5. -
  6. C backend fails on constant cast expr to ptr-to-anonymous struct
  7. -
  8. #ident is not recognized by C frontend
  9. [constmerge] Constant merging pass merges constants with external linkage
  10. -
  11. C front-end miscompiles the builtin_expect intrinsic!
  12. [scalarrepl] Scalar Replacement of aggregates is decimating structures it shouldn't be
  13. -
  14. 1.0 precompiled libstdc++ does not include wchar_t support
  15. -
  16. llvmgcc asserts when compiling functions renamed with asm's
  17. -
  18. C frontend crashes on some programs with lots of types.
  19. [instcombine] Resolving invoke inserts cast after terminator
  20. llvm-as crashes when labels are used in phi nodes
  21. [build problem] Callgraph.cpp not pulled in from libipa.a
  22. Variables in scope of output setjmp -calls should be volatile. Note that this does not effect correctness on -many platforms, such as X86.
  23. -
  24. llvm-gcc crashes compiling global union initializer
  25. -
  26. C front-end crash on empty structure
  27. -
  28. CFrontend crashes when compiling C99 compound expressions
  29. +calls should be volatile (Note that this does not effect correctness on +many platforms, such as X86).
  30. [X86] Emission of global bool initializers broken
  31. -
  32. llvm-gcc infinite loops on "case MAXINT:"
  33. -
  34. [C++] Catch blocks make unparsable labels
  35. -
  36. [C++] Initializing array with constructable objects fail
  37. [gccld] The -r (relinking) option does not work correctly
  38. [bcreader] Cannot read shift constant expressions from bytecode file
  39. [lowersetjmp] Lowersetjmp pass breaks dominance properties!
  40. -
  41. llvm-gcc tries to add bools
  42. SymbolTable::getUniqueName is very inefficient
  43. [buildscripts] Building into objdir with .o in it fails
  44. [setjmp/longjmp] Linking C programs which use setjmp/longjmp sometimes fail with references to the C++ runtime library!
  45. -
  46. [c++] C++ Frontend lays out superclasses like anonymous bitfields!
  47. AsmParser Misses Symbol Redefinition Error
  48. gccld -Lfoo -lfoo fails to find ./foo/libfoo.a
  49. [bcreader] Incorrect cast causes misread forward constant references
  50. -
  51. Casting a string constant to void crashes llvm-gcc
  52. [adce] ADCE considers blocks without postdominators to be unreachable
  53. -
  54. C front-end miscompiles unsigned enums whose LLVM types are signed
  55. [X86] div and rem constant exprs invalidate iterators!
  56. +
  57. [vmcore] Symbol table doesn't rename colliding variables during type resolution
  58. +
  59. bugpoint must not pass -R<directory> to Mach-O linker
  60. +
  61. gccld produces a runner script that includes command-line options to load the necessary shared objects
  62. +
+ + +

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

+ +
    +
  1. C++ frontend can crash when compiling virtual base classes
  2. +
  3. C backend fails on constant cast expr to ptr-to-anonymous struct
  4. +
  5. #ident is not recognized by C frontend
  6. +
  7. C front-end miscompiles the builtin_expect intrinsic!
  8. +
  9. 1.0 precompiled libstdc++ does not include wchar_t support
  10. +
  11. llvmgcc asserts when compiling functions renamed with asm's
  12. +
  13. C frontend crashes on some programs with lots of types.
  14. +
  15. llvm-gcc crashes compiling global union initializer
  16. +
  17. C front-end crash on empty structure
  18. +
  19. CFrontend crashes when compiling C99 compound expressions
  20. +
  21. llvm-gcc infinite loops on "case MAXINT:"
  22. +
  23. [C++] Catch blocks make unparsable labels
  24. +
  25. [C++] Initializing array with constructable objects fail
  26. +
  27. llvm-gcc tries to add bools
  28. +
  29. [c++] C++ Frontend lays out superclasses like anonymous bitfields!
  30. +
  31. C front-end miscompiles unsigned enums whose LLVM types are signed
  32. +
  33. Casting a string constant to void crashes llvm-gcc
  34. [llvmg++] Enum types are incorrectly shrunk to smaller than 'int' size
  35. [llvmg++] Cannot use pointer to member to initialize global
  36. -
  37. [vmcore] Symbol table doesn't rename colliding variables during type resolution
  38. [llvm-gcc] ?: operator as lvalue not implemented
  39. [C/C++] Bogus warning about taking the address of 'register' variable
  40. -
  41. bugpoint must not pass -R<directory> to Mach-O linker
  42. crash assigning into an array in a struct which contains a bitfield.
  43. Oversized integer bitfields cause crash
  44. -
  45. gccld produces a runner script that includes command-line options to load the necessary shared objects
  46. [llvm-gcc] Bitfields & large array don't mix well
  47. [llvm-gcc] Complex division is not supported
  48. [llvm-gcc] Illegal union field reference
  49. @@ -211,13 +253,8 @@ many platforms, such as X86.
  50. [llvm-gcc] crash on union initialization
  51. [llvm-g++] ?: expressions do not run correct number of destructors!
  52. [llvm-gcc] Pointer & constant results in invalid shift
  53. -

-

At this time, LLVM is known to work properly with SPEC CPU 2000 (X86 only), -the Olden benchmarks, and the Ptrdist benchmarks among many other programs. -Note however that the Sparc and X86 backends do not currently support exception -throwing or long jumping (including 253.perlbmk in SPEC). For these programs, -you must use the C backend.

+
@@ -577,10 +614,6 @@ Infinity. supported. This should not affect LLVM produced by the C or C++ frontends. -
  • The code produces by the C back-end has only been tested with the Sun CC, -GCC, and Intel compilers. It is possible that it will have to be adjusted to -support other C compilers.
  • -