[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