1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00

* Add features I implemented this release.

* Wrap long lines at 80 cols
* Indent lists so structure of document is a little more clear
* Make the page HTML 4.01 Strict compliant.

llvm-svn: 18258
This commit is contained in:
Reid Spencer 2004-11-25 22:38:30 +00:00
parent b79950be4d
commit 99436b68ed

View File

@ -85,34 +85,60 @@ benchmarks, and <b>many</b> other C and C++ programs.</p>
</div> </div>
<div class="doc_text"> <div class="doc_text">
<ol> <ol>
<li>The test/Programs hierarchy <a href="http://llvm.cs.uiuc.edu/PR257">has <li>LLVM now optimizes global variables significantly more than it did
been moved out of the main LLVM tree</a> into a separate CVS repo and before.
tarball. This shrinks the distribution size of LLVM itself dramatically.
</li> </li>
<li>LLVM now optimizes global variables significantly more than it did <li>LLVM now includes the new '<tt>undef</tt>' value and
before.</li> <a href="LangRef.html#i_unreachable"><tt>unreachable</tt></a> instruction,
<li>LLVM now includes the new '<tt>undef</tt>' value and <a which give the optimizer more information about the behavior of the
href="LangRef.html#i_unreachable"><tt>unreachable</tt></a> instruction, program.
which give the optimizer more information about the behavior of the </li>
program.</li> <li>llvmgcc and llvmg++ now emit source line number information when '-g' is
<li>The LLVM makefiles have been improved to build LLVM much faster (2x) and passed in. This information can be used with llvm-db or other tools and
includes new targets (like dist-check, uninstall). One important change is passes.
associated with <a href="http://llvm.cs.uiuc.edu/PR456>PR456">PR456</a>. </li>
The libraries and tools will now be built into <li>The test/Programs hierarchy <a href="http://llvm.cs.uiuc.edu/PR257">has
<tt>$builddir/Debug/{bin,lib}</tt> instead of been moved out of the main LLVM tree</a> into a separate CVS repository and
<tt>$builddir/tools/Debug</tt> and <tt>$builddir/lib/Debug</tt>. Similarly tarball. This shrinks the distribution size of LLVM itself significantly.
for <tt>Release</tt> and <tt>Profile</tt> builds. </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
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.
</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
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> </li>
<li>The LLVM source code is much more compatible with Microsoft Visual C++, <li>The LLVM source code is much more compatible with Microsoft Visual C++,
including the JIT and runtime-code generation, though the entire system including the JIT and runtime-code generation, though the entire system
may not work with it.</li> may not work with it.
<li>llvmgcc and llvmg++ now emit source line number information when '-g' is </li>
passed in. This information can be used with llvm-db or other tools and
passes.</li>
<li>The target-to-JIT interfaces <a href="http://llvm.cs.uiuc.edu/PR283">are <li>The target-to-JIT interfaces <a href="http://llvm.cs.uiuc.edu/PR283">are
now much simpler</a> and more powerful.</li> now much simpler</a> and more powerful.
</li>
</ol> </ol>
</div> </div>
@ -127,14 +153,15 @@ In this release, the following missing features were implemented:
<ol> <ol>
<li><a href="http://llvm.cs.uiuc.edu/PR419">JIT interface should support <li><a href="http://llvm.cs.uiuc.edu/PR419">JIT interface should support
arbitrary calls</a></li> arbitrary calls</a>
</li>
<li>The <tt>llvm-ar</tt> tool was previously incomplete and didn't properly <li>The <tt>llvm-ar</tt> tool was previously incomplete and didn't properly
support other ar(1) implementations. This has been corrected. <tt>llvm-ar</tt> support other ar(1) implementations. This has been corrected. <tt>llvm-ar</tt>
now fully supports all archive editing functions, table of contents listing, now fully supports all archive editing functions, table of contents listing,
extraction, and printing. It can also read BSD4.4/MacOSX and SVR4 style extraction, and printing. It can also read BSD4.4/MacOSX and SVR4 style
archives. See <a archives. See <a href="CommandGuide/html/llvm-ar.html">llvm-ar</a> for
href="http://llvm.cs.uiuc.edu/docs/CommandGuide/html/llvm-ar.html">llvm-ar</a> details.
for details.</li> </li>
</ol> </ol>
</div> </div>
@ -148,15 +175,18 @@ issues were fixed:</a>
<div class="doc_text"> <div class="doc_text">
<ol> <ol>
<li><a href="http://llvm.cs.uiuc.edu/PR426">[llvmg++] Tons of warnings are spewed when <li><a href="http://llvm.cs.uiuc.edu/PR426">[llvmg++] Tons of warnings
linking to libstdc++</a></li> are spewed when linking to libstdc++</a>
<li><a href="http://llvm.cs.uiuc.edu/PR352">include/{Support,Config} -> </li>
include/llvm/{Support,Config}</a></li> <li><a href="http://llvm.cs.uiuc.edu/PR352">include/{Support,Config} ->
include/llvm/{Support,Config}</a>
</li>
<li>The names of the libraries generated by compiling LLVM source have been <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. changed to ensure they do not conflict with other packages upon installation.
Each LLVM library is now prefixed with LLVM and uses mixed clase. For example, Each LLVM library is now prefixed with LLVM and uses mixed clase. For example,
the library <tt>libasmparser.a</tt> in 1.3 has become the library <tt>libasmparser.a</tt> in 1.3 has become
<tt>libLLVMAsmParser.a</tt> in release 1.4.</li> <tt>libLLVMAsmParser.a</tt> in release 1.4.
</li>
</ol> </ol>
</div> </div>
@ -170,7 +200,8 @@ In this release, the following build problems were fixed:
<ol> <ol>
<li><a href="http://llvm.cs.uiuc.edu/PR256">[autoconf] further standardizing <li><a href="http://llvm.cs.uiuc.edu/PR256">[autoconf] further standardizing
autoconf usage</a>. Various improvements in the configure.ac script were autoconf usage</a>. Various improvements in the configure.ac script were
made as well as the makefile system.</li> made as well as the makefile system.
</li>
</ol> </ol>
</div> </div>
@ -182,8 +213,9 @@ improvements:</a>
<div class="doc_text"> <div class="doc_text">
<ol> <ol>
<li><a href="http://llvm.cs.uiuc.edu/PR362">Ugly code generated for <li><a href="http://llvm.cs.uiuc.edu/PR362">Ugly code generated for
std::min/std::max</a></li> std::min/std::max</a>
</li>
</ol> </ol>
</div> </div>
@ -198,32 +230,33 @@ were fixed:</a>
<p>Bugs fixed in the LLVM Core:</p> <p>Bugs fixed in the LLVM Core:</p>
<ol> <ol>
<li><a href="http://llvm.cs.uiuc.edu/PR420">[licm] LICM invalidates alias analysis info <li><a href="http://llvm.cs.uiuc.edu/PR420">[licm] LICM invalidates alias
and uses broken information</a> (optimizer crash)</li> analysis info and uses broken information</a> (optimizer crash)</li>
<li><a href="http://llvm.cs.uiuc.edu/PR422">[asmwriter] Asmwriter is really slow for <li><a href="http://llvm.cs.uiuc.edu/PR422">[asmwriter] Asmwriter is really
functions with lots of values</a></li> slow for functions with lots of values</a></li>
<li><a href="http://llvm.cs.uiuc.edu/PR423">[anders-aa] Andersen's AA is completely <li><a href="http://llvm.cs.uiuc.edu/PR423">[anders-aa] Andersen's AA is
broken in LLVM 1.3</a></li> completely broken in LLVM 1.3</a></li>
<li><a href="http://llvm.cs.uiuc.edu/PR430">[bcwriter] Empty compaction tables <li><a href="http://llvm.cs.uiuc.edu/PR430">[bcwriter] Empty compaction
defined</a></li> tables defined</a></li>
<li><a href="http://llvm.cs.uiuc.edu/PR227">[X86] llc output for functions w/certain <li><a href="http://llvm.cs.uiuc.edu/PR227">[X86] llc output for functions
names tickles GNU 'as' bugs</a></li> w/certain names tickles GNU 'as' bugs</a></li>
</ol> </ol>
<p>Bugs in the C/C++ front-end:</p> <p>Bugs in the C/C++ front-end:</p>
<ol> <ol>
<li><a href="http://llvm.cs.uiuc.edu/PR445">[llvmg++] not enough templates are instantiated</a></li> <li><a href="http://llvm.cs.uiuc.edu/PR445">[llvmg++] not enough templates are
<li><a href="http://llvm.cs.uiuc.edu/PR450">[llvmg++] Extern const globals cannot be instantiated</a></li>
marked 'constant' if they have nontrivial ctors or dtors</a></li> <li><a href="http://llvm.cs.uiuc.edu/PR450">[llvmg++] Extern const globals
<li><a href="http://llvm.cs.uiuc.edu/PR461">[llvmgcc] Crash compiling unnamed cannot be marked 'constant' if they have nontrivial ctors or dtors</a></li>
<li><a href="http://llvm.cs.uiuc.edu/PR461">[llvmgcc] Crash compiling unnamed
bitfield which does not increase struct size</a></li> bitfield which does not increase struct size</a></li>
</ol> </ol>
<p>Bugs fixed in the Sparc V9 back-end:</p> <p>Bugs fixed in the Sparc V9 back-end:</p>
<ol> <ol>
<li><a href="http://llvm.cs.uiuc.edu/PR428">[sparcv9] regalloc assertion <li><a href="http://llvm.cs.uiuc.edu/PR428">[sparcv9] regalloc assertion
failure with certain indirect calls</a></li> failure with certain indirect calls</a></li>
</ol> </ol>
@ -311,24 +344,24 @@ components, please contact us on the llvmdev list.</p>
<div class="doc_text"> <div class="doc_text">
<ul> <ul>
<li>In the JIT, <tt>dlsym</tt> on a symbol compiled by the JIT will not work.
<li>In the JIT, <tt>dlsym</tt> on a symbol compiled by the JIT will not </li>
work.</li> <li>The JIT does not use mutexes to protect its internal data structures. As
such, execution of a threaded program could cause these data structures to be
<li>The JIT does not use mutexes to protect its internal data structures. As corrupted.
such, execution of a threaded program could cause these data structures to be </li>
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
<li>Linking in static archive files (.a files) is slow (there is no symbol <a href="CommandGuide/html/llvm-ranlib.html"><tt>llvm-ranlib</tt></a> on the
table in the archive).</li> archive to add an LLVM symbol table.
</li>
<li>The gccld program <a href="http://llvm.cs.uiuc.edu/PR139">does not link <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> 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 <li><a href="http://llvm.cs.uiuc.edu/PR240">The lower-invoke pass does not
values live across a setjmp as volatile</a>. This missing feature only affects mark values live across a setjmp as volatile</a>. This missing feature
targets whose setjmp/longjmp libraries do not save and restore the entire only affects targets whose setjmp/longjmp libraries do not save and restore
register file.</li> the entire register file.</li>
</ul> </ul>
</div> </div>