git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_31@156734 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bill Wendling
2012-05-13 10:04:01 +00:00
parent 71b37e2a29
commit f85a5db0f4

View File

@@ -3,7 +3,7 @@
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="llvm.css" type="text/css">
<link rel="stylesheet" href="_static/llvm.css" type="text/css">
<title>LLVM 3.1 Release Notes</title>
</head>
<body>
@@ -96,6 +96,7 @@ Release Notes</a>.</h1>
<p>In the LLVM 3.1 time-frame, the Clang team has made many improvements:</p>
<ul>
<li>C++11 support is greatly expanded including lambdas, initializer lists, constexpr, user-defined literals, and atomics.</li>
<li>...</li>
</ul>
@@ -119,17 +120,30 @@ Release Notes</a>.</h1>
<div>
<p><a href="http://dragonegg.llvm.org/">DragonEgg</a> is a
<a href="http://gcc.gnu.org/wiki/plugins">gcc plugin</a> that replaces GCC's
optimizers and code generators with LLVM's. It works with gcc-4.5 or gcc-4.6,
targets the x86-32 and x86-64 processor families, and has been successfully
used on the Darwin, FreeBSD, KFreeBSD, Linux and OpenBSD platforms. It fully
supports Ada, C, C++ and Fortran. It has partial support for Go, Java, Obj-C
and Obj-C++.</p>
optimizers and code generators with LLVM's. It works with gcc-4.5 and gcc-4.6
(and partially with gcc-4.7), can target the x86-32/x86-64 and ARM processor
families, and has been successfully used on the Darwin, FreeBSD, KFreeBSD,
Linux and OpenBSD platforms. It fully supports Ada, C, C++ and Fortran. It
has partial support for Go, Java, Obj-C and Obj-C++.</p>
<p>The 3.1 release has the following notable changes:</p>
<ul>
<li>...</li>
<li>Partial support for gcc-4.7. Ada support is poor, but other languages work
fairly well.</li>
<li>Support for ARM processors. Some essential gcc headers that are needed to
build DragonEgg for ARM are not installed by gcc. To work around this,
copy the missing headers from the gcc source tree.</li>
<li>Better optimization for Fortran by exploiting the fact that Fortran scalar
arguments have 'restrict' semantics.</li>
<li>Better optimization for all languages by passing information about type
aliasing and type ranges to the LLVM optimizers.</li>
<li>A regression test-suite was added.</li>
</ul>
@@ -250,7 +264,21 @@ Release Notes</a>.</h1>
a lot of other language and tools projects. This section lists some of the
projects that have already been updated to work with LLVM 3.1.</p>
... to be filled in right before the release ...
<h3>Pure</h3>
<p>Pure (http://pure-lang.googlecode.com/) is an algebraic/functional
programming language based on term rewriting. Programs are collections of
equations which are used to evaluate expressions in a symbolic fashion. The
interpreter uses LLVM as a backend to JIT-compile Pure programs to fast native
code. Pure offers dynamic typing, eager and lazy evaluation, lexical closures, a
hygienic macro system (also based on term rewriting), built-in list and matrix
support (including list and matrix comprehensions) and an easy-to-use interface
to C and other programming languages (including the ability to load LLVM bitcode
modules, and inline C, C++, Fortran and Faust code in Pure programs if the
corresponding LLVM-enabled compilers are installed).</p>
<p>Pure version 0.54 has been tested and is known to work with LLVM 3.1 (and
continues to work with older LLVM releases >= 2.5).</p>
</div>
@@ -536,6 +564,9 @@ syntax, there are still significant gaps in that support.</p>
<li>The <tt>unwind</tt> instruction is now gone. With the introduction of the
new exception handling system in LLVM 3.0, the <tt>unwind</tt> instruction
became obsolete.</li>
<li>LLVM 3.0 and earlier automatically added the returns_twice fo functions
like setjmp based on the name. This functionality was removed in 3.1.
This affects Clang users, if -ffreestanding is used.</li>
<li>....</li>
</ul>
@@ -604,6 +635,7 @@ syntax, there are still significant gaps in that support.</p>
<ul>
<li>llvm-stress is a command line tool for generating random .ll files to fuzz
different LLVM components. </li>
<li>llvm-ld has been removed. Use llvm-link or Clang instead.</li>
<li>....</li>
</ul>