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 class="doc_text">
<ol>
<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 repo and
tarball. This shrinks the distribution size of LLVM itself dramatically.
<li>LLVM now optimizes global variables significantly more than it did
before.
</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>The LLVM makefiles have been improved to build LLVM much 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">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>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>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>
<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>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>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>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>
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
now much simpler</a> and more powerful.</li>
now much simpler</a> and more powerful.
</li>
</ol>
</div>
@ -127,14 +153,15 @@ In this release, the following missing features were implemented:
<ol>
<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
support other ar(1) implementations. This has been corrected. <tt>llvm-ar</tt>
now fully supports all archive editing functions, table of contents listing,
extraction, and printing. It can also read BSD4.4/MacOSX and SVR4 style
archives. See <a
href="http://llvm.cs.uiuc.edu/docs/CommandGuide/html/llvm-ar.html">llvm-ar</a>
for details.</li>
archives. See <a href="CommandGuide/html/llvm-ar.html">llvm-ar</a> for
details.
</li>
</ol>
</div>
@ -148,15 +175,18 @@ issues were fixed:</a>
<div class="doc_text">
<ol>
<li><a href="http://llvm.cs.uiuc.edu/PR426">[llvmg++] Tons of warnings are spewed when
linking to libstdc++</a></li>
<li><a href="http://llvm.cs.uiuc.edu/PR352">include/{Support,Config} ->
include/llvm/{Support,Config}</a></li>
<li><a href="http://llvm.cs.uiuc.edu/PR426">[llvmg++] Tons of warnings
are spewed when linking to libstdc++</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
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,
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>
</div>
@ -170,7 +200,8 @@ In this release, the following build problems were fixed:
<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>
made as well as the makefile system.
</li>
</ol>
</div>
@ -182,8 +213,9 @@ improvements:</a>
<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><a href="http://llvm.cs.uiuc.edu/PR362">Ugly code generated for
std::min/std::max</a>
</li>
</ol>
</div>
@ -198,32 +230,33 @@ were fixed:</a>
<p>Bugs fixed in the LLVM Core:</p>
<ol>
<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 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
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/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
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 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>
</ol>
<p>Bugs in the C/C++ front-end:</p>
<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/PR450">[llvmg++] Extern const globals 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
<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/PR450">[llvmg++] Extern const globals
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>
</ol>
<p>Bugs fixed in the Sparc V9 back-end:</p>
<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>
</ol>
@ -311,24 +344,24 @@ components, please contact us on the llvmdev list.</p>
<div class="doc_text">
<ul>
<li>In the JIT, <tt>dlsym</tt> on a symbol compiled by the JIT will not
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
corrupted.</li>
<li>Linking in static archive files (.a files) is slow (there is no symbol
table in the archive).</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>In the JIT, <tt>dlsym</tt> on a symbol compiled by the JIT will not 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
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>
</ul>
</div>