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:
parent
b79950be4d
commit
99436b68ed
@ -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>
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user