PR9214: Convert ConstantExpr::getIndices() to return an ArrayRef, plus
[oota-llvm.git] / docs / ReleaseNotes.html
index f06bc6f8a21e4858e11e4b68259364201ed8ee8d..29d10aff03ad9f7a3fbf5e5a5820dd0cf02da17b 100644 (file)
@@ -3,7 +3,6 @@
 <html>
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-  <meta encoding="utf8">
   <link rel="stylesheet" href="llvm.css" type="text/css">
   <title>LLVM 2.9 Release Notes</title>
 </head>
@@ -25,7 +24,7 @@
 </ol>
 
 <div class="doc_author">
-  <p>Written by the <a href="http://llvm.org">LLVM Team</a></p>
+  <p>Written by the <a href="http://llvm.org/">LLVM Team</a></p>
 </div>
 
 <!--
@@ -114,14 +113,11 @@ implemented (such as rvalue references and variadic templates).  LLVM 2.9 has
 also brought in a large range of bug fixes and minor features (e.g. __label__
 support), and is much more compatible with the Linux Kernel.</p>  
   
-<p>If Clang rejects your code that is built with another compiler, please take a
+<p>If Clang rejects your code but another compiler accepts it, please take a
 look at the <a href="http://clang.llvm.org/compatibility.html">language
-compatibility</a> guide to make sure the issue isn't intentional or a known
-issue.
+compatibility</a> guide to make sure this is not intentional or a known issue.
 </p>
 
-<ul>
-</ul>
 </div>
 
 <!--=========================================================================-->
@@ -229,7 +225,37 @@ Like compiler_rt, libc++ is now <a href="DeveloperPolicy.html#license">dual
 </div>
 
 
+<!--=========================================================================-->
+<h2>
+<a name="LLBrowse">LLBrowse: IR Browser</a>
+</h2>
+
+<div class="doc_text">
+<p>
+<a href="http://llvm.org/svn/llvm-project/llbrowse/trunk/doc/LLBrowse.html">
+  LLBrowse</a> is an interactive viewer for LLVM modules. It can load any LLVM
+  module and displays its contents as an expandable tree view, facilitating an
+  easy way to inspect types, functions, global variables, or metadata nodes. It
+  is fully cross-platform, being based on the popular wxWidgets GUI toolkit.
+</p>
+</div>
 
+<!--=========================================================================-->
+<h2>
+<a name="vmkit">VMKit</a>
+</h2>
+
+<div class="doc_text">
+<p>The <a href="http://vmkit.llvm.org/">VMKit project</a> is an implementation
+  of a Java Virtual Machine (Java VM or JVM) that uses LLVM for static and
+  just-in-time compilation. As of LLVM 2.9, VMKit now supports generational
+  garbage collectors. The garbage collectors are provided by the MMTk framework,
+  and VMKit can be configured to use one of the numerous implemented collectors
+  of MMTk.
+</p>
+</div>
+  
+  
 <!--=========================================================================-->
 <!--
 <h2>
@@ -374,7 +400,34 @@ Furthermore, Polly can use PoCC(Pluto) an advanced optimizer for data-locality
 and parallelism.</p>
 </div>
 
+<!--=========================================================================-->
+<h2>Rubinius</h2>
+
+<div class="doc_text">
+  <p><a href="http://github.com/evanphx/rubinius">Rubinius</a> is an environment
+  for running Ruby code which strives to write as much of the implementation in
+  Ruby as possible. Combined with a bytecode interpreting VM, it uses LLVM to
+  optimize and compile ruby code down to machine code. Techniques such as type
+  feedback, method inlining, and deoptimization are all used to remove dynamism
+  from ruby execution and increase performance.</p>
+</div>
+
+
+<!--=========================================================================-->
+<div class="doc_subsection">
+<a name="FAUST">FAUST Real-Time Audio Signal Processing Language</a>
+</div>
 
+<div class="doc_text">
+<p>
+<a href="http://faust.grame.fr">FAUST</a> is a compiled language for real-time
+audio signal processing. The name FAUST stands for Functional AUdio STream. Its
+programming model combines two approaches: functional programming and block
+diagram composition. In addition with the C, C++, JAVA output formats, the
+Faust compiler can now generate LLVM bitcode, and works with LLVM 2.7-2.9.</p>
+
+</div>
+  
 <!-- *********************************************************************** -->
 <h1>
   <a name="whatsnew">What's New in LLVM 2.9?</a>
@@ -472,7 +525,7 @@ release includes a few major enhancements and additions to the optimizers:</p>
   simplify expressions, perform simple dead store elimination, and perform
   common subexpression elimination.  It does a good job at catching some of the
   trivial redundancies that exist in unoptimized code, making later passes more
-  effective.<,/li>
+  effective.</li>
 
 <li>A new -loop-instsimplify pass is used to clean up loop bodies in the loop
   optimizer.</li>
@@ -626,7 +679,7 @@ it run faster:</p>
   The reimplementation uses a new LLVM IR <a 
   href="LangRef.html#t_x86mmx">x86_mmx</a> type to ensure that MMX operations
   are <em>only</em> generated from source that uses MMX builtin operations. With
-  this, random types like &lt;2 x i32&gt; are not turned into to MMX operations
+  this, random types like &lt;2 x i32&gt; are not turned into MMX operations
   (which can be catastrophic without proper "emms" insertion).  Because the X86
   code generator always generates reliable code, the -disable-mmx flag is now
   removed.
@@ -690,9 +743,13 @@ it run faster:</p>
   multiplications and addition of a simple delay slot filler.</li>
 
 <li>PowerPC: The backend has been largely MC'ized and is ready to support
-  directly writing out mach-o object files.  Noone seems interested in finishing
+  directly writing out mach-o object files.  No one seems interested in finishing
   this final step though.</li>
-  
+
+<li>Mips: Improved o32 ABI support, including better varags handling.
+More instructions supported in codegen: madd, msub, rotr, rotrv and clo.
+It also now supports lowering block addresses.</li>
+
 </ul>
 </div>
 
@@ -727,7 +784,7 @@ from the previous release.</p>
     
 <li>The LoopIndexSplit, LiveValues, SimplifyHalfPowrLibCalls, GEPSplitter, and
   PartialSpecialization passes were removed.  They were unmaintained,
-  buggy, or decided to be a bad idea.</li>
+  buggy, or deemed to be a bad idea.</li>
 </ul>
 
 </div>
@@ -963,7 +1020,7 @@ consider using <a href="#dragonegg">dragonegg</a> instead.</p>
 <div class="doc_text">
 
 <p>A wide variety of additional information is available on the <a
-href="http://llvm.org">LLVM web page</a>, in particular in the <a
+href="http://llvm.org/">LLVM web page</a>, in particular in the <a
 href="http://llvm.org/docs/">documentation</a> section.  The web page also
 contains versions of the API documentation which is up-to-date with the
 Subversion version of the source code.