Expand the --args section
[oota-llvm.git] / docs / ReleaseNotes.html
index 4ad4c9f495b2958ce06faa8d98850e259606f67f..596d24aed944d9c704bf562a397cb5eaf4365edb 100644 (file)
 <!-- *********************************************************************** -->
 
 This document contains the release notes for the LLVM compiler infrastructure,
-release 1.0.  The most up-to-date version of this document can be found on the
-<a href="http://llvm.cs.uiuc.edu/releases/1.0/ReleaseNotes.html">LLVM 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>
+release 1.0.  Here we describe how to install LLVM, as well as any known
+problems.  The most up-to-date version of this document can be found on the <a
+href="http://llvm.cs.uiuc.edu/releases/1.0/">LLVM 1.0 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>
 
-FIXME: What is this document?  Where do I find other documents?<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
+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>
 
 
 <!-- *********************************************************************** -->
@@ -56,6 +61,46 @@ it is all new!  In particular, we are providing a stable C compiler, beta C++
 compiler, a C back-end, stable X86 and Sparc V9 static and JIT code generators,
 as well as a large suite of scalar and interprocedural optimizations.<p>
 
+The default optimizer sequence used by the C/C++ front-ends is:<p>
+
+<ol>
+<li>Interprocedural dead code elimination (-globaldce)
+<li>Exception handling pruning (-prune-eh)
+<li>Function inlining (-inline)
+<li>Instruction combining (-instcombine)
+<li>Cast elimination (-raise)
+<li>Tail duplication (-tailduplicate)
+<li>CFG simplification (-simplifycfg)
+<li>Scalar replacement of aggregates (-scalarrepl)
+<li>Tail call elimination (-tailcallelim)
+<li>Instruction combining (-instcombine)
+<li>Reassociation (-reassociate)
+<li>Instruction combining (-instcombine)
+<li>CFG simplification (-simplifycfg)
+<li>Loop canonicalization (-loopsimplify)
+<li>Loop invariant code motion, with scalar promotion (-licm)
+<li>Global common subexpression elimination, with load elimination (-gcse)
+<li>Sparse conditional constant propagation (-sccp)
+<li>Instruction combining (-instcombine)
+<li>Induction variable canonicalization (-indvars)
+<li>Aggressive dead code elimination (-adce)
+<li>CFG simplication (-simplifycfg)
+<li>Dead type elimination (-deadtypeelim)
+<li>Global constant merging (-constmerge)
+</ol><p>
+
+At link-time, the following optimizations are run:<p>
+
+<ol>
+<li>Global constant merging (-constmerge)
+<li>[optional] Internalization [which marks most functions and global variables static] (-internalize)
+<li>Interprocedural dead argument elimination (-deadargelim)
+<li>Instruction combining (-instcombine)
+<li>CFG simplification (-simplifycfg)
+<li>Interprocedural dead code elimination (-globaldce)
+</ol><p>
+
+
 TODO: Works on: SPEC CPU 2000<p>
 TODO: Works on: Olden/Ptrdist benchmarks<p>
 
@@ -145,6 +190,11 @@ sections.
        - These functions have not been tested.
 </ol><p>
 
+<li>Bugs:<br>
+  <a href="http://llvm.cs.uiuc.edu/PR6">Oversized integer bitfields cause crash</a>.<br>
+  <a href="http://llvm.cs.uiuc.edu/PR9">LLVM needs explicit support for weak variables</a>.<br>
+<p>
+
 <li>Although many GCC extensions are supported, some are not.  In particular,
     the following extensions are known to <b>not be</b> supported:
   <ol>
@@ -279,24 +329,30 @@ href="http://gcc.gnu.org/gcc-3.4/changes.html">GCC 3.4 release notes</a>.<p>
     different from the model used in the Itanium ABI, so <b>exceptions will not
     interact correctly</b> .
 
+<li><a href="http://llvm.cs.uiuc.edu/PR11">Code for executing
+destructors when unwinding is not shared</a>.
+
+
 <!-- _______________________________________________________________________ -->
 </ul><h4><a name="x86-be"><hr size=0>Known problems with the X86 back-end</h4><ul>
 
-<li>The X86 code generator does not currently support the <tt>unwind</tt>
-instruction, so code that throws a C++ exception or calls the C <tt>longjmp</tt>
-function will abort.<p>
+<li>The X86 code generator <a
+href="http://llvm.cs.uiuc.edu/PR16">does not currently
+support the <tt>unwind</tt> instruction</a>, so code that throws a C++ exception
+or calls the C <tt>longjmp</tt> function will abort.<p>
 
-<li>Some executables produced by LLC seem to intermittently crash (extremely
-infrequently).  The cause of the problem has not been diagnosed, and does not
-affect the JIT.<p>
+<li><a href="http://llvm.cs.uiuc.edu/PR4">Some executables
+produced by LLC seem to intermittently crash (extremely infrequently)</a>.  The
+cause of the problem has not been diagnosed, and does not affect the JIT.<p>
 
 
 <!-- _______________________________________________________________________ -->
 </ul><h4><a name="sparc-be"><hr size=0>Known problems with the Sparc back-end</h4><ul>
 
-<li>The Sparc code generator does not currently support the <tt>invoke</tt> or
-<tt>unwind</tt> instructions, so code produced by the C++ front-end and C code
-that calls the <tt>setjmp</tt> or <tt>longjmp</tt> functions will not compile.
+<li>The Sparc code generator <a
+href="http://llvm.cs.uiuc.edu/PR15">does not currently
+support the <tt>unwind</tt> instruction</a>, so code that throws a C++ exception
+or calls the C <tt>longjmp</tt> function will abort.<p>
 
 
 <!-- _______________________________________________________________________ -->
@@ -342,9 +398,9 @@ via the mailing lists.<p>
 
 <hr><font size-1>
 
-<address>By: <a href="mailto:sabre@nondot.org">Chris Lattner</a></address>
+Maintained By: <a href="http://llvm.cs.uiuc.edu/">The LLVM Team</a><br>
 <!-- Created: Wed Oct  1 17:38:54 CDT 2003 -->
 <!-- hhmts start -->
-Last modified: Thu Oct  2 11:37:25 CDT 2003
+Last modified: Sun Oct 12 16:51:06 CDT 2003
 <!-- hhmts end -->
 </body></html>