From a39719ff2428f01e9a3a196f07f59c69202f3d41 Mon Sep 17 00:00:00 2001
From: Chris Lattner
Date: Wed, 25 Feb 2004 16:36:51 +0000
Subject: [PATCH] Substantial improvements and cleanups for the release notes.
We were missing a bunch of stuff! :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11822 91177308-0d34-0410-b5e6-96231b3b80d8
---
docs/ReleaseNotes.html | 55 +++++++++++++++++++++++++++---------------
1 file changed, 36 insertions(+), 19 deletions(-)
diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
index b0309ef1203..6ec9f84a2a7 100644
--- a/docs/ReleaseNotes.html
+++ b/docs/ReleaseNotes.html
@@ -69,20 +69,28 @@ href="http://llvm.cs.uiuc.edu/releases/">releases page.
-
This is the third public release of the LLVM compiler infrastructure.
+
+This is the third public release of the LLVM compiler infrastructure. This
+release incorporates several new features (including
+exception handling support for the native code generators, the start of a
+source-level debugger, and profile guided optimizer components), many speedups and code quality
+improvements, documentation improvements, and a small collection of important bug fixes. Overall, this is our highest quality release to
+date, and we encourage you to upgrade if you are using LLVM 1.0 or 1.1.
-
At this time, LLVM is known to correctly compile and run all C
+
FIXME: UPDATE:
+At this time, LLVM is known to correctly compile and run all C
& C++ SPEC CPU2000 benchmarks, the Olden benchmarks, and the Ptrdist
benchmarks. It has also been used to compile many other programs. LLVM
now also works with a broad variety of C++ programs, though it has still
received less testing than the C front-end.
-
@@ -90,8 +98,23 @@ This release implements the following new features:
- LLVM 1.2 encodes bytecode files for large programs in 10-30% less space.
- LLVM can now feed profile information back into optimizers for Profile Guided Optimization, and includes a simple basic block reordering pass.
- The LLVM JIT lazily initializes global variables, reducing startup time for programs with lots of globals (like C++ programs).
+
+- The build and installation infrastructure in this release is dramatically
+improved. There is now an autoconf/AutoRegen.sh script
+that you can run to rebuild the configure script and its associated
+files as well as beta support for "make install" and RPM package generation.
+
- The "tblgen" tool is now documented.
+- The LLVM code generator can now fold spill code into instructions on targets
+that support it.
- LLVM now no longer depends on the boost library.
+- The X86 backend now generates substantially better native code, and is faster.
+- The C backend has been turned moved from the "llvm-dis" tool to the "llc"
+tool. You can activate it with "llc -march=c foo.bc -o foo.c".
@@ -110,7 +133,7 @@ In this release, the following missing features were implemented:
@@ -123,20 +146,13 @@ In this release, the following Quality of Implementation issues were fixed:
- [loadvn/inline/scalarrepl] Slow optimizations with extremely large basic blocks
- [asmparser] Really slow parsing of types with complex upreferences
- [llvmgcc] C front-end does not emit 'zeroinitializer' when possible
+- [llvmgcc] Structure copies result in a LOT of code
- LLVM is now much more memory efficient when handling large zero initialized arrays
-LLVM gained several improvements to its build and installation
-infrastructure in this release. There is now
-a
autoconf/AutoRegen.sh script that you can run to rebuild the
-
configure script and its associated files
-(
Bug 105) as well as beta support
-for "make install" (
Bug 208 and
-
Bug 220) and RPM package generation
-(
Bug 203).
-Additionally, in this release, the following build problems were fixed:
+In this release, the following build problems were fixed:
@@ -147,20 +163,22 @@ Additionally, in this release, the following build problems were fixed:
- [loopsimplify] Many pointless phi nodes are created
-- The X86 backend didn't generate fchs to negate floating point numbers
-- The X86 backend didn't expand memcpy() into the rep movs instruction
- [x86] wierd stack/frame pointer manipulation
+
+- The X86 backend now generate fchs to negate floating point numbers,
+compiles memcpy() into the rep movs instruction, and makes much better
+use of powerful addressing modes and instructions.
Bugs in the LLVM Core:
@@ -197,7 +215,6 @@ management functions in libc runtime to allow them to be overriden
- [llvmg++] Dynamically initialized constants cannot be marked 'constant'
- [llvmgcc] floating-point unary minus is incorrect for +0.0
- [llvm-gcc] miscompilation of 'X = Y = Z' with aggregate values
-- [llvmgcc] Structure copies result in a LOT of code
- [llvm-gcc] miscompilation when a function is re-declared as static