From e6e1b35acd1ba59abf97a62dabe7a237bdeb8bbd Mon Sep 17 00:00:00 2001
From: Chris Lattner
Date: Sun, 8 Jun 2008 21:19:07 +0000
Subject: [PATCH] add more notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52099 91177308-0d34-0410-b5e6-96231b3b80d8
---
docs/ReleaseNotes.html | 52 ++++++++++++++++++++++++++++++------------
1 file changed, 37 insertions(+), 15 deletions(-)
diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
index f1538e071e4..1bc96bd07ac 100644
--- a/docs/ReleaseNotes.html
+++ b/docs/ReleaseNotes.html
@@ -85,6 +85,9 @@ upgrading LLVM 1.9 files to LLVM 2.x syntax, but you can always use a previous
LLVM release to do this. One nice impact of this is that the LLVM regression
test suite no longer depends on llvm-upgrade, which makes it run faster.
+llvm2cpp tool has been folded into llc, use
+ llc -march=cpp instead of llvm2cpp.
+
LLVM API Changes:
@@ -249,8 +252,11 @@ deletion pass, which is safe for infinite loops.
- LLVM now includes a simple 'Jump Threading' pass, which attempts to simplify
conditional branches using information about predecessor blocks, simplifying
- the control flow graph. This pass is pretty basic at this point, but catches
- some important cases and provides a foundation to build on.
+ the control flow graph. This pass is pretty basic at this point, but
+ catches some important cases and provides a foundation to build on.
+
+- Several corner case bugs which could lead to deleting volatile memory
+ accesses have been fixed.
@@ -275,7 +281,9 @@ faster:
target-specific support. Use of APInt is also a step toward support for
non-power-of-2 integer sizes.
-Several compile time speedups for code with large basic blocks.
+LLVM 2.3 includes several compile time speedups for code with large basic
+ blocks, particular in the instruction selection phase, register allocation,
+ scheduling, and tail merging/jump threading.
Several improvements which make llc's --view-sunit-dags
visualization of scheduling dependency graphs easier to understand.
@@ -286,6 +294,16 @@ faster:
memcpy lowering in the backend is more aggressive, particularly for
memcpy calls introduced by the code generator when handling
pass-by-value structure argument copies.
+
+Inline assembly with multiple register results now returns those results
+ directly in the appropriate registers, rather than going through memory.
+ Inline assembly that uses constraints like "ir" with immediates now use the
+ 'i' form when possible instead of always loading the value in a register.
+ This saves an instruction and reduces register use.
+
+Added support for PIC/GOT style tail calls on x86/32 and initial support
+ for tail calls on PowerPC 32 (it may also work on ppc64 but not
+ thoroughly tested).
@@ -336,6 +354,9 @@ faster:
The register allocator can now rematerialize PIC-base computations.
+The "t" and "f" inline assembly constraints for the X87 floating point stack
+ now work. However, the "u" constraint is still not fully supported.
+
@@ -351,8 +372,6 @@ faster:
- The LLVM C backend now supports vector code.
-
-
@@ -370,8 +389,9 @@ faster:
- LLVM now builds with GCC 4.3.
-- llvm2cpp tool has been folded into llc, use
- llc -march=cpp
+- Bugpoint now supports running custom scripts (with the -run-custom
+ option) to determine how to execute the command and whether it is making
+ forward process.
@@ -456,8 +476,8 @@ href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVMdev list.
all inline assembly that uses the X86
floating point stack. It supports the 'f' and 't' constraints, but not
'u'.
- The X86 backend generates inefficient floating point code when configured to
- generate code for systems that don't have SSE2.
+ The X86 backend generates inefficient floating point code when configured
+ to generate code for systems that don't have SSE2.
Win64 code generation wasn't widely tested. Everything should work, but we
expect small issues to happen. Also, llvm-gcc cannot build mingw64 runtime
currently due
@@ -494,7 +514,8 @@ 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
+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.
@@ -651,11 +672,12 @@ crashing if an exception is raised. Workaround: do not use -E.
or finish at a non-byte offset in a record. Workaround: do not pack records
or use representation clauses that result in a field of a non-discrete type
starting or finishing in the middle of a byte.
-The lli interpreter considers 'main'
-as generated by the Ada binder to be invalid.
-Workaround: hand edit the file to use pointers for argv and envp rather than
-integers.
-The -fstack-check option is ignored.
+The lli interpreter considers
+'main' as generated by the Ada binder to be invalid.
+Workaround: hand edit the file to use pointers for argv and
+envp rather than integers.
+The -fstack-check option is
+ignored.
--
2.34.1