[llvm-commits] CVS: llvm/docs/ReleaseNotes.html
Chris Lattner
lattner at cs.uiuc.edu
Tue Dec 7 00:04:28 PST 2004
Changes in directory llvm/docs:
ReleaseNotes.html updated: 1.275 -> 1.276
---
Log message:
Commit the cleanup of the LLVM 1.4 release notes. This should clearly go
into the release :)
---
Diffs of the changes: (+79 -100)
Index: llvm/docs/ReleaseNotes.html
diff -u llvm/docs/ReleaseNotes.html:1.275 llvm/docs/ReleaseNotes.html:1.276
--- llvm/docs/ReleaseNotes.html:1.275 Mon Dec 6 16:32:33 2004
+++ llvm/docs/ReleaseNotes.html Tue Dec 7 02:04:13 2004
@@ -44,14 +44,14 @@
<p>This document contains the release notes for the LLVM compiler
infrastructure, release 1.4. Here we describe the status of LLVM, including any
-known problems and bug fixes from the previous release. The most up-to-date
+known problems and improvements from the previous release. The most up-to-date
version of this document can be found on the <a
href="http://llvm.cs.uiuc.edu/releases/1.4/">LLVM 1.4 web site</a>. If you are
not reading this on the LLVM web pages, you should probably go there because
this document may be updated after the release.</p>
-<p>For more information about LLVM, including information about potentially more
-current releases, please check out the <a href="http://llvm.cs.uiuc.edu">main
+<p>For more information about LLVM, including information about the latest
+release, please check out the <a href="http://llvm.cs.uiuc.edu">main LLVM
web site</a>. If you have questions or comments, the <a
href="http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVM developer's mailing
list</a> is a good place to send them.</p>
@@ -73,9 +73,18 @@
<p>This is the fifth public release of the LLVM compiler infrastructure.</p>
-<p> At this time, LLVM is known to correctly compile and run all C & C++
-SPEC CPU95 & 2000 benchmarks, the Olden benchmarks, and the Ptrdist
-benchmarks, and <b>many</b> other C and C++ programs.</p>
+<p> At this time, LLVM is known to correctly compile and a broad range of
+C and C++ programs, including the SPEC CPU95 & 2000 suite. This release
+includes several major enhancements to the LLVM system, including a new
+PowerPC JIT, enhancements to the C/C++ front-end to provide source line number
+information in LLVM, a new <a href="CommandGuide/html/llvmc.html">compiler
+driver</a>, and several other enhancements listed below. It also includes
+bug fixes for those problems found since the 1.3 release.</p>
+
+<p>Note that this release seperates the LLVM Program Testsuite out of the
+main LLVM distribution into a seperate CVS repository and tarball. This
+reduces the size of the main LLVM distribution. Also note that LLVM now
+builds tools into llvm/Debug/bin by default instead of llvm/tools/Debug.</p>
</div>
@@ -86,71 +95,69 @@
<div class="doc_text">
<ol>
- <li>LLVM now includes a JIT for the PowerPC target.</li>
- <li>LLVM now optimizes global variables significantly more than it did
- before.
- </li>
- <li>LLVM now includes the new '<tt>undef</tt>' value and
- <a href="LangRef.html#i_unreachable"><tt>unreachable</tt></a> instruction,
- which give the optimizer more information about the behavior of the
- program.
- </li>
+ <li>LLVM now includes a Just-In-Time compiler for the PowerPC target.</li>
<li>llvmgcc and llvmg++ now emit source line number information when '-g' is
passed in. This information can be used with llvm-db or other tools and
- passes.
- </li>
+ passes.</li>
<li>The test/Programs hierarchy <a href="http://llvm.cs.uiuc.edu/PR257">has
been moved out of the main LLVM tree</a> into a separate CVS repository and
tarball. This shrinks the distribution size of LLVM itself significantly.
</li>
+ <li>LLVM now optimizes global variables more aggressively than it did
+ before.</li>
+ <li>LLVM now includes the new '<tt>undef</tt>' value and
+ <a href="LangRef.html#i_unreachable"><tt>unreachable</tt></a> instruction,
+ which give the optimizer more information about the behavior of the
+ program.
+ </li>
<li>Bytecode compression with bzip2 has been implemented. All bytecode files
generated by LLVM will now be compressed by default. Compression can be
disabled with the <tt>-disable-compression</tt> option to the tools that can
generate bytecode files.
</li>
- <li>A generic <a href="http://llvm.cs.uiuc.edu/PR353">compiler driver</a> and
- an associated <a href="CommandGuide/html/llvm-ld.html">generic linker</a> have
- been implemented. The compiler driver is generic because it can be configured
+ <li>A generic <a href="CommandGuide/html/llvmc.html">compiler driver</a>
+ (llvmc) and
+ an associated <a href="CommandGuide/html/llvm-ld.html">generic linker</a>
+ (llvm-ld) have been added. The compiler driver is generic because it can be
+ configured
to pre-process, translate, optimize, assemble, and link code from any source
- language. This aids compiler writers because all that is needed is a
- source-to-bytecode or source-to-assembly translator and a configuration file.
- The linker is generic because it allows dynamically loadable optimization
- modules to be executed for link-time optimization. Language specific
- link-time optimization modules can be created and executed automatically.
+ language with an LLVM front-end. This makes it easier for compiler writers
+ to hide the multiple steps required to compile a program (compiling,
+ optimizing, linking runtime libraries, etc) in one simple command.
</li>
<li>The <a href="http://llvm.cs.uiuc.edu/PR263">dependent libraries</a>
feature has been implemented. This allows front end compilers to indicate in
the bytecode which libraries the bytecode needs to be linked with. Both the
C/C++ front end and Stacker support generating the required libraries. The
- Linker now supports using this information to ensure required libaries are
+ linker now supports using this information to ensure required libaries are
linked into the module. This minimizes the need to use the <tt>-l</tt> option
when using <a href="CommandGuide/html/llvmc.html"><tt>llvmc</tt></a>
</li>
- <li>The LLVM makefiles have been improved to build LLVM faster (2x) and
- includes new targets (like dist-check, uninstall). One important change is
- associated with <a href="http://llvm.cs.uiuc.edu/PR456">PR456</a>. The
- libraries and tools will now be built into <tt>$builddir/Debug/{bin,lib}</tt>
- instead of <tt>$builddir/tools/Debug</tt> and <tt>$builddir/lib/Debug</tt>.
- Similarly for <tt>Release</tt> and <tt>Profile</tt> builds.
+ <li>The LLVM makefiles have been improved to build LLVM much faster and
+ includes new targets (like dist-check, uninstall). One important user-visible
+ change is that libraries and tools will now be built into
+ <tt>$builddir/Debug/{bin,lib}</tt>
+ instead of <tt>$builddir/tools/Debug</tt> and <tt>$builddir/lib/Debug</tt>
+ (Similarly for <tt>Release</tt> and <tt>Profile</tt> builds).
</li>
<li>The LLVM source code is much more compatible with Microsoft Visual C++,
including the JIT and runtime-code generation, though the entire system
may not work with it.
</li>
- <li>The target-to-JIT interfaces <a href="http://llvm.cs.uiuc.edu/PR283">are
+ <li>The JIT-Target interfaces <a href="http://llvm.cs.uiuc.edu/PR283">are
now much simpler</a> and more powerful.
</li>
+ <li>LLVM now provides llvm-ar and llvm-ranlib tools for working with archives
+ of LLVM bytecode files.</li>
<li>zlib and libpng are <a href="http://llvm.cs.uiuc.edu/PR417">no longer
included in the main LLVM tarball</a>.</li>
- <li>The LLVM code generator now generates asm writers for the target from
- an abstract target description, instead of requiring them to be hand
- written.</li>
+ <li>The LLVM code generator now automatically generates assembly code writers
+ from an abstract target descriptions, eliminating the need to write
+ assembly printers manually.</li>
<li>LLVM regression and feature tests can now be run with DejaGNU.</li>
<li>llvmgcc and llvmg++ now emit source-level line number information, making
it possible to map from LLVM code back to source. This is currently used
by llvm-db.</li>
- <li>Floating point intensive programs on X86 systems run much faster
- with the LLC code generator and JIT than in 1.3.</li>
</ol>
</div>
@@ -187,14 +194,12 @@
<div class="doc_text">
<ol>
- <li><a href="http://llvm.cs.uiuc.edu/PR409">
- [core/asmparser] ConstantFP::isValueValidForType Broken</a>
- </li>
- <li><a href="http://llvm.cs.uiuc.edu/PR426">[llvmg++] Tons of warnings
- are spewed when linking to libstdc++</a>
+ <li>The linker no longer <a href="http://llvm.cs.uiuc.edu/PR426">emits many
+ useless warnings</a> when linking C++ programs.</a>
</li>
- <li><a href="http://llvm.cs.uiuc.edu/PR352">include/{Support,Config} ->
- include/llvm/{Support,Config}</a>
+ <li>The LLVM <a href="http://llvm.cs.uiuc.edu/PR352">#include namespace</a>
+ has been made consistent. Files in <tt>llvm/include/{Support,Config}</tt>
+ are now located in <tt>llvm/include/llvm/{Support,Config}</tt>.</a>
</li>
<li>The names of the libraries generated by compiling LLVM source have been
changed to ensure they do not conflict with other packages upon installation.
@@ -202,23 +207,13 @@
the library <tt>libasmparser.a</tt> in 1.3 has become
<tt>libLLVMAsmParser.a</tt> in release 1.4.
</li>
- <li><a href="http://llvm.cs.uiuc.edu/PR459">[llvmg++] C++ frontend is expanding
- lots of unused inline functions</a></li>
-</ol>
-
-</div>
+ <li>The C++ frontend no longer expands and emits <a
+ href="http://llvm.cs.uiuc.edu/PR459">all inline functions, even if they
+ are unused</a>. It now properly tracks which functions are needed and
+ only compiles those.</li>
-<!--=========================================================================-->
-<div class="doc_subsubsection">
-In this release, the following build problems were fixed:
-</div>
-
-<div class="doc_text">
-<ol>
- <li><a href="http://llvm.cs.uiuc.edu/PR256">[autoconf] further standardizing
- autoconf usage</a>. Various improvements in the configure.ac script were
- made as well as the makefile system.
- </li>
+ <li>Many improvements in the <a href="http://llvm.cs.uiuc.edu/PR256">autoconf
+ and makefile systems</a> have been implemented.</li>
</ol>
</div>
@@ -230,9 +225,12 @@
<div class="doc_text">
<ol>
- <li><a href="http://llvm.cs.uiuc.edu/PR362">Ugly code generated for
- std::min/std::max</a>
- </li>
+ <li>The optimizer produces <a href="http://llvm.cs.uiuc.edu/PR362">more
+ efficient code for std::min/std::max</a> and other similar functions.</li>
+ <li>The X86 backend generates substantially faster code for floating point
+ intensive programs.</li>
+ <li>The PowerPC backend generates more efficient code in many common
+ scenarios.</li>
</ol>
</div>
@@ -247,10 +245,6 @@
<p>Bugs fixed in the LLVM Core:</p>
<ol>
- <li><a href="http://llvm.cs.uiuc.edu/PR139">[Linker] gccld does not link
- objects/archives in order specified on the command line</a></li>
- <li><a href="http://llvm.cs.uiuc.edu/PR227">[X86] llc output for functions
- w/certain names tickles GNU 'as' bugs</a></li>
<li><a href="http://llvm.cs.uiuc.edu/PR420">[licm] LICM invalidates alias
analysis info and uses broken information</a> (optimizer crash)</li>
<li><a href="http://llvm.cs.uiuc.edu/PR422">[asmwriter] Asmwriter is really
@@ -259,6 +253,8 @@
completely broken in LLVM 1.3</a></li>
<li><a href="http://llvm.cs.uiuc.edu/PR430">[bcwriter] Empty compaction
tables defined</a></li>
+ <li><a href="http://llvm.cs.uiuc.edu/PR227">[X86] llc output for functions
+ w/certain names tickles GNU 'as' bugs</a></li>
<li><a href="http://llvm.cs.uiuc.edu/PR472">[cbackend] Static globals are
prototyped as 'extern'</a></li>
</ol>
@@ -274,7 +270,7 @@
bitfield which does not increase struct size</a></li>
<li><a href="http://llvm.cs.uiuc.edu/PR424">[llvmgcc] llvmgcc emits invalid
constant exprs</a></li>
- <li><a href="http://llvm.cs.uiuc.edu/PR421">[llvmg++] Crash in initializing
+ <li><a href="http://llvm.cs.uiuc.edu/PR421">[llvmg++] Crash initializing
array with constructors in hard EH situations</a></li>
<li><a href="http://llvm.cs.uiuc.edu/PR397">[llvm-gcc] Inline function
redefinitions error due to 'asm' function rename</a></li>
@@ -309,8 +305,9 @@
<li>Intel and AMD machines running Red Hat Linux and FreeBSD (and probably
other unix-like systems).</li>
<li>Sun UltraSPARC workstations running Solaris 8.</li>
-<li>Intel and AMD machines running on Win32 with the Cygwin libraries.</li>
-<li>PowerPC-based Mac OS X boxes, running 10.2 and above.</li>
+<li>Intel and AMD machines running on Win32 with the Cygwin libraries (limited
+ support is available for native builds with Visual C++).</li>
+<li>PowerPC-based Mac OS X systems, running 10.2 and above.</li>
</ul>
<p>The core LLVM infrastructure uses
@@ -319,6 +316,7 @@
porting may be required to get LLVM to work on new platforms. We welcome your
portability patches and reports of successful builds or error messages.</p>
+<!--
<p>Note that the LLVM build system does not currently support directories with
spaces on them when running on Win32/cygwin. We strongly recommend running
LLVM and the C frontend out of a top-level directory without spaces (e.g.,
@@ -327,6 +325,7 @@
are needed by the LLVM build process or test suite (e.g., /bin/time). Finally,
please make sure that there are no directories with spaces in them in your
PATH environment variable.</p>
+-->
</div>
@@ -360,11 +359,11 @@
components, please contact us on the llvmdev list.</p>
<ul>
-<li>The following passes are incomplete or buggy: <tt>-pgmdep, -memdep,
- -ipmodref, -cee, -branch-combine, -instloops, -paths</tt></li>
-<li>The <tt>-pre</tt> pass is incomplete (there are cases it doesn't handle that
- it should) and not thoroughly tested.</li>
-<li>The <tt>llvm-db</tt> tool is in a very early stage of development.</li>
+<li>The following passes are incomplete or buggy, and may be removed in future
+ releases: <tt>-pgmdep, -memdep, -ipmodref, -cee, -branch-combine,
+ -instloops, -paths, -pre</tt></li>
+<li>The <tt>llvm-db</tt> tool is in a very early stage of development, but can
+ be used to step through programs and inspect the stack.</li>
<li>The "iterative scan" register allocator (enabled with -regalloc=iterativescan)
is not stable.</li>
</ul>
@@ -385,22 +384,10 @@
such, execution of a threaded program could cause these data structures to be
corrupted.
</li>
- <li>Linking in static archive files (.a files) is slow by default because
- there is no symbol table in the archive. To remedy this, run
- <a href="CommandGuide/html/llvm-ranlib.html"><tt>llvm-ranlib</tt></a> on the
- archive to add an LLVM symbol table.
- </li>
- <li>The gccld program <a href="http://llvm.cs.uiuc.edu/PR139">does not link
- objects/archives in the order specified on the command line.</a>
- </li>
<li><a href="http://llvm.cs.uiuc.edu/PR240">The lower-invoke pass does not
mark values live across a setjmp as volatile</a>. This missing feature
only affects targets whose setjmp/longjmp libraries do not save and restore
the entire register file.</li>
- <li><a href="http://llvm.cs.uiuc.edu/PR427">[bytecode] Assertion on V1
- Bytecode Files</a>. This bug won't be fixed because V1 bytecode had its own
- problems, no one is using V1 bytecode any more, and the fix is non-trivial.
- </li>
</ul>
</div>
@@ -426,9 +413,6 @@
<li>Initialization of global union variables can only be done <a
href="http://llvm.cs.uiuc.edu/PR162">with the largest union member</a>.</li>
-<li><a href="http://llvm.cs.uiuc.edu/PR244">[llvm-gcc] Error when an implicitly
-external function is re-declared as static</a></li>
-
</ul>
</div>
@@ -581,10 +565,9 @@
<div class="doc_text">
-<p>For this release, the C++ front-end is considered to be fully functional but
-has not been tested as thoroughly as the C front-end. It has been tested and
-works for a number of non-trivial programs, but there may be lurking bugs.
-Please report any bugs or problems.</p>
+<p>For this release, the C++ front-end is considered to be fully. It has been
+tested and works for a number of non-trivial programs, including LLVM
+itself.</p>
</div>
@@ -696,10 +679,6 @@
(for example, GCC requires the <tt>-fno-strict-aliasing</tt> option). This
problem probably cannot be fixed.</li>
-<li><a href="http://llvm.cs.uiuc.edu/PR33">Initializers for global variables</a>
-cannot include special floating point numbers like Not-A-Number or
-Infinity.</li>
-
<li><a href="http://llvm.cs.uiuc.edu/PR56">Zero arg vararg functions are not
supported</a>. This should not affect LLVM produced by the C or C++
frontends.</li>
@@ -739,7 +718,7 @@
src="http://www.w3.org/Icons/valid-html401" alt="Valid HTML 4.01!" /></a>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a><br>
- Last modified: $Date: 2004/12/06 22:32:33 $
+ Last modified: $Date: 2004/12/07 08:04:13 $
</address>
</body>
More information about the llvm-commits
mailing list