One new bug fixed, one old bug fixed.
[oota-llvm.git] / docs / ReleaseNotes.html
index 2ffa98398dd6d81c9938b644176dbf5119140576..414a7e705fc6d566cb28e1d87caeca8f6a920f79 100644 (file)
@@ -65,17 +65,58 @@ This is the second public release of the LLVM compiler infrastructure.  This
 release implements the following new features:<p>
 
 <ol>
-<li>temp</li>
-<li>temp</li>
-<li>temp</li>
+<p><li><a
+href="http://mail.cs.uiuc.edu/pipermail/llvmdev/2003-November/000528.html">A new
+LLVM profiler, similar to gprof</a> is available</li></p>
+
+<p><li>LLVM and the C/C++ front-end now compile on Mac OSX!  Mac OSX users can
+now explore the LLVM optimizer with the C backend (note that LLVM requires GCC
+3.3 on Mac OSX).</li></p>
+
+<p><li>LLVM has been <a
+href="http://mail.cs.uiuc.edu/pipermail/llvmdev/2003-November/000554.html">moved
+into an 'llvm' C++ namespace</a>, for easier integration with third-party
+code.</a> Note that due to a bug in GDB 5.x, to debug namespacified LLVM code,
+you will need to upgrade to GDB 6.</li></p>
+</ol>
+
+In this release, the following missing features were implemented:<p>
+
+<ol>
+<li><a href="http://llvm.cs.uiuc.edu/PR88">The interpreter does not support
+invoke or unwind</a></li>
+
+<li><a href="http://llvm.cs.uiuc.edu/PR99">Interpreter does not support the
+<tt>vaarg</tt> instruction</a></li>
+
+<li><a href="http://llvm.cs.uiuc.edu/PR117">llvm-nm cannot read archive
+files</a></li>
+
 </ol><p>
 
 In this release, the following Quality of Implementation issues were fixed:<p>
 
 <ol>
-<li><a href="http://llvm.cs.uiuc.edu/PR29">C++ front-end is not generating linkonce linkage type when it can</a></li>
+
+<li><a href="http://llvm.cs.uiuc.edu/PR29">C++ front-end is not generating
+linkonce linkage type when it can</a></li>
+
+<li><a href="http://llvm.cs.uiuc.edu/PR84">C front-end doesn't emit
+getelementptr for address of array element</a></li>
+
+<li><a href="http://llvm.cs.uiuc.edu/PR96">Bad path to the C/C++ frontend causes
+build problems</a></li>
+
+<li><a href="http://llvm.cs.uiuc.edu/PR114">LLVM header files should be -Wold-style-cast clean</a></li>
+
+
+<li>The LLVM bytecode reader has been <a
+href="http://llvm.cs.uiuc.edu/PR127">sped up a lot</a> (up to 4x in some
+cases).</li>
+
 </ol><p>
 
+
 In this release, the following bugs in the previous release were fixed:<p>
 
 <ol>
@@ -84,7 +125,49 @@ In this release, the following bugs in the previous release were fixed:<p>
 <li><a href="http://llvm.cs.uiuc.edu/PR59">C++ frontend can crash when compiling virtual base classes</a></li>
 <li><a href="http://llvm.cs.uiuc.edu/PR62">C backend fails on constant cast expr to ptr-to-anonymous struct</a></li>
 <li><a href="http://llvm.cs.uiuc.edu/PR63">#ident is not recognized by C frontend</a></li>
-<li><a href="http://llvm.cs.uiuc.edu/PR64">[constmerge] Constant merging pass merges constants with external linkage</a><li>
+<li><a href="http://llvm.cs.uiuc.edu/PR64">[constmerge] Constant merging pass merges constants with external linkage</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR65">C front-end miscompiles the builtin_expect intrinsic!</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR66">[scalarrepl] Scalar Replacement of aggregates is decimating structures it shouldn't be</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR67">1.0 precompiled libstdc++ does not include wchar_t support</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR68">llvmgcc asserts when compiling functions renamed with asm's</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR69">C frontend crashes on some programs with lots of types.</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR70">[instcombine] Resolving invoke inserts cast after terminator</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR71">llvm-as crashes when labels are used in phi nodes</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR72">[build problem] Callgraph.cpp not pulled in from libipa.a</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR77">Variables in scope of output setjmp
+calls should be volatile</a>.  Note that this does not effect correctness on
+many platforms, such as X86.
+<li><a href="http://llvm.cs.uiuc.edu/PR79">llvm-gcc crashes compiling global union initializer</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR80">C front-end crash on empty structure</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR81">CFrontend crashes when compiling C99 compound expressions</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR83">[X86] Emission of global bool initializers broken</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR87">llvm-gcc infinite loops on "case MAXINT:"</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR89">[C++] Catch blocks make unparsable labels</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR90">[C++] Initializing array with constructable objects fail</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR91">[gccld] The -r (relinking) option does not work correctly</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR92">[bcreader] Cannot read shift constant expressions from bytecode file</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR93">[lowersetjmp] Lowersetjmp pass breaks dominance properties!</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR94">llvm-gcc tries to add bools</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR95">SymbolTable::getUniqueName is very inefficient</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR98">[buildscripts] Building into objdir with .o in it fails</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR101">[setjmp/longjmp] Linking C programs which use setjmp/longjmp sometimes fail with references to the C++ runtime library!</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR104">[c++] C++ Frontend lays out superclasses like anonymous bitfields!</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR107">AsmParser Misses Symbol Redefinition Error</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR108">gccld -Lfoo -lfoo fails to find ./foo/libfoo.a</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR110">[bcreader] Incorrect cast causes misread forward constant references</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR112">Casting a string constant to void crashes llvm-gcc</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR116">[adce] ADCE considers blocks without postdominators to be unreachable</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR54">C front-end miscompiles unsigned enums whose LLVM types are signed</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR123">[X86] div and rem constant exprs invalidate iterators!</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR125">[llvmg++] Enum types are incorrectly shrunk to smaller than 'int' size</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR128">[llvmg++] Cannot use pointer to member to initialize global</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR130">[vmcore] Symbol table doesn't rename colliding variables during type resolution</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR131">[llvm-gcc] ?: operator as lvalue not implemented</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR133">[C/C++] Bogus warning about taking the address of 'register' variable</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR97">bugpoint must not pass -R<directory> to Mach-O linker</a></li>
+<li><a href="http://llvm.cs.uiuc.edu/PR113">crash assigning into an array in a struct which contains a bitfield</a>.</li>
+<li><a href="http://llvm.cs.uiuc.edu/PR6">Oversized integer bitfields cause crash</a></li>
+
 </ol><p>
 
 At this time, LLVM is known to work properly with SPEC CPU 2000, the Olden
@@ -101,11 +184,14 @@ the C backend.<p>
 </b></font></td></tr></table><ul>
 <!-- *********************************************************************** -->
 
-LLVM has only been extensively tested on Intel and AMD machines running Red
-Hat Linux, and Sun UltraSPARC workstations running Solaris 8.
+LLVM has been extensively tested on Intel and AMD machines running Red
+Hat Linux, and Sun UltraSPARC workstations running Solaris 8.  Additionally, 
+LLVM works on Mac OS/X 10.3 and above, but only with the C back-end (no native
+backend for the PowerPC is available yet).
 The core LLVM infrastructure uses "autoconf" for portability, so hopefully we
-work on more platforms than that.  However, it is extremely likely that we
-missed something.  We welcome portability patches and error messages.<p>
+work on more platforms than that.  However, it is likely that we
+missed something, and that minor porting is required to get LLVM to work on 
+new platforms.  We welcome portability patches and error messages.<p>
 
 
 <!-- *********************************************************************** -->
@@ -138,15 +224,16 @@ sections.
 <li>It is not possible to <tt>dlopen</tt> an LLVM bytecode file in the JIT.<p>
 
 <li>Linking in static archive files (.a files) is very slow (there is no symbol
-table in the archive).
+table in the archive).<p>
+
+<li><a href="http://llvm.cs.uiuc.edu/PR82">LLVM cannot handle structures with
+more than 256 elements</a>.<p>
 
 <!-- _______________________________________________________________________ -->
 </ul><h4><a name="c-fe"><hr size=0>Known problems with the C front-end</h4><ul>
 
 </ul><b>Bugs:</b><ul><p>
 
-<li><a href="http://llvm.cs.uiuc.edu/PR6">Oversized integer bitfields cause crash</a>.<p>
-
 <li>C99 Variable sized arrays do not release stack memory when they go out of 
     scope.  Thus, the following program may run out of stack space:
 <pre>
@@ -344,13 +431,13 @@ problem probably cannot be fixed.<p>
 <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.<p>
 
-<li><a href="http://zion.cs.uiuc.edu/PR56">Zero arg vararg functions are not 
+<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.<p>
 
-<li>The code produces by the C back-end has only been tested with the Sun CC and
-GCC compilers.  It is possible that it will have to be adjusted to support other
-C compilers.<p>
+<li>The code produces by the C back-end has only been tested with the Sun CC,
+GCC, and Intel compilers.  It is possible that it will have to be adjusted to
+support other C compilers.<p>
 
 
 
@@ -381,6 +468,6 @@ via the mailing lists.<p>
 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: Wed Oct 29 00:04:57 CST 2003
+Last modified: Wed Nov 19 19:06:03 CST 2003
 <!-- hhmts end -->
 </body></html>