mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-11 15:26:07 +00:00
Rip out the guts of this document to prepare it for LLVM 1.5 progress
llvm-svn: 18726
This commit is contained in:
parent
74a9e71013
commit
dbe39faac2
@ -4,11 +4,11 @@
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<link rel="stylesheet" href="llvm.css" type="text/css">
|
||||
<title>LLVM 1.4 Release Notes</title>
|
||||
<title>LLVM 1.5 Release Notes</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="doc_title">LLVM 1.4 Release Notes</div>
|
||||
<div class="doc_title">LLVM 1.5 Release Notes</div>
|
||||
|
||||
<ol>
|
||||
<li><a href="#intro">Introduction</a></li>
|
||||
@ -31,7 +31,7 @@
|
||||
</ol>
|
||||
|
||||
<div class="doc_author">
|
||||
<p>Written by the <a href="http://llvm.cs.uiuc.edu">LLVM team</a><p>
|
||||
<p>Written by the <a href="http://llvm.cs.uiuc.edu">LLVM Team</a><p>
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
@ -43,10 +43,10 @@
|
||||
<div class="doc_text">
|
||||
|
||||
<p>This document contains the release notes for the LLVM compiler
|
||||
infrastructure, release 1.4. Here we describe the status of LLVM, including any
|
||||
infrastructure, release 1.5. Here we describe the status of LLVM, including any
|
||||
known problems and improvements from the previous release. The most up-to-date
|
||||
version of this document can be found on the <a
|
||||
href="http://llvm.cs.uiuc.edu/releases/1.4/">LLVM 1.4 web site</a>. If you are
|
||||
href="http://llvm.cs.uiuc.edu/releases/1.5/">LLVM 1.5 web site</a>. If you are
|
||||
not reading this on the LLVM web pages, you should probably go there because
|
||||
this document may be updated after the release.</p>
|
||||
|
||||
@ -56,9 +56,9 @@ web site</a>. If you have questions or comments, the <a
|
||||
href="http://mail.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVM developer's mailing
|
||||
list</a> is a good place to send them.</p>
|
||||
|
||||
<p>Note that if you are reading this file from CVS, this document applies
|
||||
to the <i>next</i> release, not the current one. To see the release notes for
|
||||
the current or previous releases, see the <a
|
||||
<p>Note that if you are reading this file from CVS or the main LLVM web page,
|
||||
this document applies to the <i>next</i> release, not the current one. To see
|
||||
the release notes for the current or previous releases, see the <a
|
||||
href="http://llvm.cs.uiuc.edu/releases/">releases page</a>.</p>
|
||||
|
||||
</div>
|
||||
@ -71,20 +71,11 @@ href="http://llvm.cs.uiuc.edu/releases/">releases page</a>.</p>
|
||||
|
||||
<div class="doc_text">
|
||||
|
||||
<p>This is the fifth public release of the LLVM compiler infrastructure.</p>
|
||||
<p>This is the sixth public release of the LLVM compiler infrastructure.</p>
|
||||
|
||||
<p> At this time, LLVM is known to correctly compile on a broad range of
|
||||
C and C++ programs, including the SPEC CPU95 & 2000 suite. This release
|
||||
includes several major enhancements to the LLVM system, including a new
|
||||
PowerPC JIT, enhancements to the C/C++ front-end to provide source line number
|
||||
information in LLVM, a new <a href="CommandGuide/html/llvmc.html">compiler
|
||||
driver</a>, and several other enhancements listed below. It also includes
|
||||
bug fixes for those problems found since the 1.3 release.</p>
|
||||
|
||||
<p>Note that this release seperates the LLVM Program Testsuite out of the
|
||||
main LLVM distribution into a seperate CVS repository and tarball. This
|
||||
reduces the size of the main LLVM distribution. Also note that LLVM now
|
||||
builds tools into llvm/Debug/bin by default instead of llvm/tools/Debug.</p>
|
||||
<p> At this time, LLVM is known to correctly compile on a broad range of C and
|
||||
C++ programs, including the SPEC CPU95 & 2000 suite. TODO. It also includes
|
||||
bug fixes for those problems found since the 1.4 release.</p>
|
||||
|
||||
</div>
|
||||
|
||||
@ -95,67 +86,7 @@ builds tools into llvm/Debug/bin by default instead of llvm/tools/Debug.</p>
|
||||
|
||||
<div class="doc_text">
|
||||
<ol>
|
||||
<li>LLVM now includes a Just-In-Time compiler for the PowerPC target.</li>
|
||||
<li>llvmgcc and llvmg++ now emit source line number information when '-g' is
|
||||
passed in, making it possible to map from LLVM code back to source.
|
||||
This information is currently used by llvm-db and can be used with 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>LLVM now optimizes global variables more aggressively 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>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="CommandGuide/html/llvmc.html">compiler driver</a>
|
||||
(llvmc) and
|
||||
an associated <a href="CommandGuide/html/llvm-ld.html">generic linker</a>
|
||||
(llvm-ld) have been added. The compiler driver is generic because it can be
|
||||
configured
|
||||
to pre-process, translate, optimize, assemble, and link code from any source
|
||||
language with an LLVM front-end. This makes it easier for compiler writers
|
||||
to hide the multiple steps required to compile a program (compiling,
|
||||
optimizing, linking runtime libraries, etc) in one simple command.
|
||||
</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++ and Stacker front ends support generating the required dependencies.
|
||||
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 much faster and
|
||||
includes new targets (like dist-check, uninstall). One important user-visible
|
||||
change is that 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>The JIT-Target interfaces <a href="http://llvm.cs.uiuc.edu/PR283">are
|
||||
now much simpler</a> and more powerful.
|
||||
</li>
|
||||
<li>LLVM now provides llvm-ar and llvm-ranlib tools for working with archives
|
||||
of LLVM bytecode files.</li>
|
||||
<li>zlib and libpng are <a href="http://llvm.cs.uiuc.edu/PR417">no longer
|
||||
included in the main LLVM tarball</a>.</li>
|
||||
<li>The LLVM code generator now automatically generates assembly code writers
|
||||
from an abstract target descriptions, eliminating the need to write
|
||||
assembly printers manually.</li>
|
||||
<li>LLVM regression and feature tests now use DejaGNU instead of QMTest.</li>
|
||||
<li></li>
|
||||
</ol>
|
||||
|
||||
</div>
|
||||
@ -169,16 +100,7 @@ In this release, the following missing features were implemented:
|
||||
<div class="doc_text">
|
||||
|
||||
<ol>
|
||||
<li><a href="http://llvm.cs.uiuc.edu/PR419">JIT interface should support
|
||||
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="CommandGuide/html/llvm-ar.html">llvm-ar</a> for
|
||||
details.
|
||||
</li>
|
||||
<li></li>
|
||||
</ol>
|
||||
|
||||
</div>
|
||||
@ -192,26 +114,7 @@ issues were fixed:</a>
|
||||
<div class="doc_text">
|
||||
|
||||
<ol>
|
||||
<li>The linker no longer <a href="http://llvm.cs.uiuc.edu/PR426">emits many
|
||||
useless warnings</a> when linking C++ programs.
|
||||
</li>
|
||||
<li>The LLVM <a href="http://llvm.cs.uiuc.edu/PR352">#include namespace</a>
|
||||
has been made consistent. Files in <tt>llvm/include/{Support,Config}</tt>
|
||||
are now located in <tt>llvm/include/llvm/{Support,Config}</tt>.
|
||||
</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>
|
||||
<li>The C++ frontend no longer expands and emits <a
|
||||
href="http://llvm.cs.uiuc.edu/PR459">all inline functions, even if they
|
||||
are unused</a>. It now properly tracks which functions are needed and
|
||||
only compiles those.</li>
|
||||
|
||||
<li>Many improvements in the <a href="http://llvm.cs.uiuc.edu/PR256">autoconf
|
||||
and makefile systems</a> have been implemented.</li>
|
||||
<li></li>
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
@ -223,12 +126,7 @@ improvements:</a>
|
||||
|
||||
<div class="doc_text">
|
||||
<ol>
|
||||
<li>The optimizer produces <a href="http://llvm.cs.uiuc.edu/PR362">more
|
||||
efficient code for std::min/std::max</a> and other similar functions.</li>
|
||||
<li>The X86 backend generates substantially faster code for floating point
|
||||
intensive programs.</li>
|
||||
<li>The PowerPC backend generates more efficient code in many common
|
||||
scenarios.</li>
|
||||
<li></li>
|
||||
</ol>
|
||||
</div>
|
||||
|
||||
@ -243,48 +141,13 @@ 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/PR472">[cbackend] Static globals are
|
||||
prototyped as 'extern'</a></li>
|
||||
<li></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
|
||||
bitfield which does not increase struct size</a></li>
|
||||
<li><a href="http://llvm.cs.uiuc.edu/PR424">[llvmgcc] llvmgcc emits invalid
|
||||
constant exprs</a></li>
|
||||
<li><a href="http://llvm.cs.uiuc.edu/PR421">[llvmg++] Crash initializing
|
||||
array with constructors in hard EH situations</a></li>
|
||||
<li><a href="http://llvm.cs.uiuc.edu/PR397">[llvm-gcc] Inline function
|
||||
redefinitions error due to 'asm' function rename</a></li>
|
||||
<li><a href="http://llvm.cs.uiuc.edu/PR244">[llvm-gcc] Error when an
|
||||
implicitly external function is re-declared as static</a></li>
|
||||
<li><a href="http://llvm.cs.uiuc.edu/PR360">[llvmgcc] Structure field with
|
||||
non-constant offset crashes llvmgcc</a></li>
|
||||
<li><a href="http://llvm.cs.uiuc.edu/PR447">[llvmg++] Crash compiling
|
||||
friend with default argument</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
|
||||
failure with certain indirect calls</a></li>
|
||||
<li></li>
|
||||
</ol>
|
||||
|
||||
</div>
|
||||
@ -314,17 +177,6 @@ to the machine and operating system on which it is built. However, minor
|
||||
porting may be required to get LLVM to work on new platforms. We welcome your
|
||||
portability patches and reports of successful builds or error messages.</p>
|
||||
|
||||
<!--
|
||||
<p>Note that the LLVM build system does not currently support directories with
|
||||
spaces on them when running on Win32/cygwin. We strongly recommend running
|
||||
LLVM and the C frontend out of a top-level directory without spaces (e.g.,
|
||||
<tt>/cygdrive/c/llvm</tt>). Also, make sure to install <b>all</b> of the
|
||||
cygwin packages. By default, many important tools are not installed that
|
||||
are needed by the LLVM build process or test suite (e.g., /bin/time). Finally,
|
||||
please make sure that there are no directories with spaces in them in your
|
||||
PATH environment variable.</p>
|
||||
-->
|
||||
|
||||
</div>
|
||||
|
||||
<!-- *********************************************************************** -->
|
||||
|
Loading…
x
Reference in New Issue
Block a user