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>
|
||||||
|
|
||||||
<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>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user