diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
index 2f83b94..bc86bd4 100644
--- a/docs/ReleaseNotes.html
+++ b/docs/ReleaseNotes.html
@@ -5,11 +5,11 @@
   <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.8 Release Notes</title>
+  <title>LLVM 2.9 Release Notes</title>
 </head>
 <body>
 
-<div class="doc_title">LLVM 2.8 Release Notes</div>
+<h1 class="doc_title">LLVM 2.9 Release Notes</h1>
 
 <img align=right src="http://llvm.org/img/DragonSmall.png"
     width="136" height="136" alt="LLVM Dragon Logo">
@@ -17,8 +17,8 @@
 <ol>
   <li><a href="#intro">Introduction</a></li>
   <li><a href="#subproj">Sub-project Status Update</a></li>
-  <li><a href="#externalproj">External Projects Using LLVM 2.8</a></li>
-  <li><a href="#whatsnew">What's New in LLVM 2.8?</a></li>
+  <li><a href="#externalproj">External Projects Using LLVM 2.9</a></li>
+  <li><a href="#whatsnew">What's New in LLVM 2.9?</a></li>
   <li><a href="GettingStarted.html">Installation Instructions</a></li>
   <li><a href="#knownproblems">Known Problems</a></li>
   <li><a href="#additionalinfo">Additional Information</a></li>
@@ -29,23 +29,23 @@
 </div>
 
 <!--
-<h1 style="color:red">These are in-progress notes for the upcoming LLVM 2.8
+<h1 style="color:red">These are in-progress notes for the upcoming LLVM 2.9
 release.<br>
 You may prefer the
-<a href="http://llvm.org/releases/2.7/docs/ReleaseNotes.html">LLVM 2.7
+<a href="http://llvm.org/releases/2.8/docs/ReleaseNotes.html">LLVM 2.8
 Release Notes</a>.</h1>
--->
+ -->
 
 <!-- *********************************************************************** -->
-<div class="doc_section">
+<h1>
   <a name="intro">Introduction</a>
-</div>
+</h1>
 <!-- *********************************************************************** -->
 
 <div class="doc_text">
 
 <p>This document contains the release notes for the LLVM Compiler
-Infrastructure, release 2.8.  Here we describe the status of LLVM, including
+Infrastructure, release 2.9.  Here we describe the status of LLVM, including
 major improvements from the previous release and significant known problems.
 All LLVM releases may be downloaded from the <a
 href="http://llvm.org/releases/">LLVM releases web site</a>.</p>
@@ -62,36 +62,25 @@
 <a href="http://llvm.org/releases/">releases page</a>.</p>
 
 </div>
- 
-
-<!--
-Almost dead code.
-  include/llvm/Analysis/LiveValues.h => Dan
-  lib/Transforms/IPO/MergeFunctions.cpp => consider for 2.8.
-  GEPSplitterPass
--->
- 
    
-<!-- Features that need text if they're finished for 2.9:
+<!-- Features that need text if they're finished for 3.1:
+  ARM EHABI
   combiner-aa?
   strong phi elim
   loop dependence analysis
-  TBAA
   CorrelatedValuePropagation
+  lib/Transforms/IPO/MergeFunctions.cpp => consider for 3.1.
  -->
  
- <!-- Announcement, lldb, libc++ -->
- 
-
 <!-- *********************************************************************** -->
-<div class="doc_section">
+<h1>
   <a name="subproj">Sub-project Status Update</a>
-</div>
+</h1>
 <!-- *********************************************************************** -->
 
 <div class="doc_text">
 <p>
-The LLVM 2.8 distribution currently consists of code from the core LLVM
+The LLVM 2.9 distribution currently consists of code from the core LLVM
 repository (which roughly includes the LLVM optimizers, code generators
 and supporting tools), the Clang repository and the llvm-gcc repository.  In
 addition to this code, the LLVM Project includes other sub-projects that are in
@@ -102,9 +91,9 @@
 
 
 <!--=========================================================================-->
-<div class="doc_subsection">
+<h2>
 <a name="clang">Clang: C/C++/Objective-C Frontend Toolkit</a>
-</div>
+</h2>
 
 <div class="doc_text">
 
@@ -115,110 +104,61 @@
 modular, library-based architecture that makes it suitable for creating or
 integrating with other development tools. Clang is considered a
 production-quality compiler for C, Objective-C, C++ and Objective-C++ on x86
-(32- and 64-bit), and for darwin-arm targets.</p>
+(32- and 64-bit), and for darwin/arm targets.</p>
 
-<p>In the LLVM 2.8 time-frame, the Clang team has made many improvements:</p>
-
-  <ul>
-    <li>Clang C++ is now feature-complete with respect to the ISO C++ 1998 and 2003 standards.</li>
-    <li>Added support for Objective-C++.</li>
-    <li>Clang now uses LLVM-MC to directly generate object code and to parse inline assembly (on Darwin).</li>
-    <li>Introduced many new warnings, including <code>-Wmissing-field-initializers</code>, <code>-Wshadow</code>, <code>-Wno-protocol</code>, <code>-Wtautological-compare</code>, <code>-Wstrict-selector-match</code>, <code>-Wcast-align</code>, <code>-Wunused</code> improvements, and greatly improved format-string checking.</li>
-    <li>Introduced the "libclang" library, a C interface to Clang intended to support IDE clients.</li>
-    <li>Added support for <code>#pragma GCC visibility</code>, <code>#pragma align</code>, and others.</li>
-    <li>Added support for SSE, AVX, ARM NEON, and AltiVec.</li>
-    <li>Improved support for many Microsoft extensions.</li>
-    <li>Implemented support for blocks in C++.</li>
-    <li>Implemented precompiled headers for C++.</li>
-    <li>Improved abstract syntax trees to retain more accurate source information.</li>
-    <li>Added driver support for handling LLVM IR and bitcode files directly.</li>
-    <li>Major improvements to compiler correctness for exception handling.</li>
-    <li>Improved generated code quality in some areas:
-      <ul>
-        <li>Good code generation for X86-32 and X86-64 ABI handling.</li>
-        <li>Improved code generation for bit-fields, although important work remains.</li>
-      </ul>
-    </li>
-  </ul>
-</div>
-
-<!--=========================================================================-->
-<div class="doc_subsection">
-<a name="clangsa">Clang Static Analyzer</a>
-</div>
-
-<div class="doc_text">
-
-<p>The <a href="http://clang-analyzer.llvm.org/">Clang Static Analyzer</a>
-   project is an effort to use static source code analysis techniques to
-   automatically find bugs in C and Objective-C programs (and hopefully <a
-   href="http://clang-analyzer.llvm.org/dev_cxx.html">C++ in the
-   future</a>!).  The tool is very good at finding bugs that occur on specific
-   paths through code, such as on error conditions.</p>
-
-<p>The LLVM 2.8 release fixes a number of bugs and slightly improves precision
-   over 2.7, but there are no major new features in the release. 
+<p>In the LLVM 2.9 time-frame, the Clang team has made many improvements in C,
+C++ and Objective-C support.  C++ support is now generally rock solid, has
+been exercised on a broad variety of code, and has several new <a 
+href="http://clang.llvm.org/cxx_status.html#cxx0x">C++'0x features</a>
+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 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 this is not intentional or a known issue.
 </p>
 
-</div>
-
-<!--=========================================================================-->
-<div class="doc_subsection">
-<a name="dragonegg">DragonEgg: llvm-gcc ported to gcc-4.5</a>
-</div>
-
-<div class="doc_text">
-<p>
-<a href="http://dragonegg.llvm.org/">DragonEgg</a> is a port of llvm-gcc to
-gcc-4.5.  Unlike llvm-gcc, dragonegg in theory does not require any gcc-4.5
-modifications whatsoever (currently one small patch is needed) thanks to the
-new <a href="http://gcc.gnu.org/wiki/plugins">gcc plugin architecture</a>.
-DragonEgg is a gcc plugin that makes gcc-4.5 use the LLVM optimizers and code
-generators instead of gcc's, just like with llvm-gcc.
-</p>
-
-<p>
-DragonEgg is still a work in progress, but it is able to compile a lot of code,
-for example all of gcc, LLVM and clang.  Currently Ada, C, C++ and Fortran work
-well, while all other languages either don't work at all or only work poorly.
-For the moment only the x86-32 and x86-64 targets are supported, and only on
-linux and darwin (darwin may need additional gcc patches).
-</p>
-
-<p>
-The 2.8 release has the following notable changes:
 <ul>
-<li>The plugin loads faster due to exporting fewer symbols.</li>
-<li>Additional vector operations such as addps256 are now supported.</li>
-<li>Ada global variables with no initial value are no longer zero initialized,
-resulting in better optimization.</li>
-<li>The '-fplugin-arg-dragonegg-enable-gcc-optzns' flag now runs all gcc
-optimizers, rather than just a handful.</li>
-<li>Fortran programs using common variables now link correctly.</li>
-<li>GNU OMP constructs no longer crash the compiler.</li>
+</ul>
+</div>
+
+<!--=========================================================================-->
+<h2>
+<a name="dragonegg">DragonEgg: GCC front-ends, LLVM back-end</a>
+</h2>
+
+<div class="doc_text">
+<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.
+Currently it requires a patched version of gcc-4.5.
+The plugin can target the x86-32 and x86-64 processor families and has been
+used successfully on the Darwin, FreeBSD and Linux platforms.
+The Ada, C, C++ and Fortran languages work well.
+The plugin is capable of compiling plenty of Obj-C, Obj-C++ and Java but it is
+not known whether the compiled code actually works or not!
+</p>
+
+<p>
+The 2.9 release has the following notable changes:
+<ul>
+<li>The plugin is much more stable when compiling Fortran.</li>
+<li>Inline assembly where an asm output is tied to an input of a different size
+is now supported in many more cases.</li>
+<li>Basic support for the __float128 type was added.  It is now possible to
+generate LLVM IR from programs using __float128 but code generation does not
+work yet.</li>
+<li>Compiling Java programs no longer systematically crashes the plugin.</li>
 </ul>
 
 </div>
 
 <!--=========================================================================-->
-<div class="doc_subsection">
-<a name="vmkit">VMKit: JVM/CLI Virtual Machine Implementation</a>
-</div>
-
-<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.8, VMKit now supports copying garbage
-collectors, and can be configured to use MMTk's copy mark-sweep garbage
-collector.  In LLVM 2.8, the VMKit .NET VM is no longer being maintained.
-</p>
-</div>
-
-<!--=========================================================================-->
-<div class="doc_subsection">
+<h2>
 <a name="compiler-rt">compiler-rt: Compiler Runtime Library</a>
-</div>
+</h2>
 
 <div class="doc_text">
 <p>
@@ -231,19 +171,20 @@
 this and other low-level routines (some are 3x faster than the equivalent
 libgcc routines).</p>
 
-<p>
-All of the code in the compiler-rt project is available under the standard LLVM
-License, a "BSD-style" license.  New in LLVM 2.8, compiler_rt now supports 
-soft floating point (for targets that don't have a real floating point unit),
-and includes an extensive testsuite for the "blocks" language feature and the
-blocks runtime included in compiler_rt.</p>
+<p>In the LLVM 2.9 timeframe, compiler_rt has had several minor changes for
+  better ARM support, and a fairly major license change.  All of the code in the
+  compiler-rt project is now <a href="DeveloperPolicy.html#license">dual
+  licensed</a> under MIT and UIUC license, which allows you to use compiler-rt
+  in applications without the binary copyright reproduction clause.  If you
+  prefer the LLVM/UIUC license, you are free to continue using it under that
+  license as well.</p>
 
 </div>
 
 <!--=========================================================================-->
-<div class="doc_subsection">
+<h2>
 <a name="lldb">LLDB: Low Level Debugger</a>
-</div>
+</h2>
 
 <div class="doc_text">
 <p>
@@ -254,18 +195,18 @@
 LLVM disassembler and the LLVM JIT.</p>
 
 <p>
-LLDB is in early development and not included as part of the LLVM 2.8 release,
-but is mature enough to support basic debugging scenarios on Mac OS X in C,
-Objective-C and C++.  We'd really like help extending and expanding LLDB to 
-support new platforms, new languages, new architectures, and new features.
-</p>
+LLDB is has advanced by leaps and bounds in the 2.9 timeframe.  It is
+dramatically more stable and useful, and includes both a new <a 
+href="http://lldb.llvm.org/tutorial.html">tutorial</a> and a <a
+href="http://lldb.llvm.org/lldb-gdb.html">side-by-side comparison with 
+GDB</a>.</p>
 
 </div>
 
 <!--=========================================================================-->
-<div class="doc_subsection">
+<h2>
 <a name="libc++">libc++: C++ Standard Library</a>
-</div>
+</h2>
 
 <div class="doc_text">
 <p>
@@ -275,19 +216,54 @@
 delivering great performance.</p>
 
 <p>
-As of the LLVM 2.8 release, libc++ is virtually feature complete, but would
-benefit from more testing and better integration with Clang++.  It is also
-looking forward to the C++ committee finalizing the C++'0x standard.
+In the LLVM 2.9 timeframe, libc++ has had numerous bugs fixed, and is now being
+co-developed with Clang's C++'0x mode.</p>
+  
+<p>
+Like compiler_rt, libc++ is now <a href="DeveloperPolicy.html#license">dual
+  licensed</a> under the MIT and UIUC license, allowing it to be used more
+  permissively.
 </p>
 
 </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>
 
 <!--=========================================================================-->
-<div class="doc_subsection">
-<a name="klee">KLEE: A Symbolic Execution Virtual Machine</a>
+<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>
+<a name="klee">KLEE: A Symbolic Execution Virtual Machine</a>
+</h2>
 
 <div class="doc_text">
 <p>
@@ -298,171 +274,145 @@
 be used to verify some algorithms.
 </p>
 
-<p>Although KLEE does not have any major new features as of 2.8, we have made
-various minor improvements, particular to ease development:</p>
-<ul>
-  <li>Added support for LLVM 2.8. KLEE currently maintains compatibility with
-    LLVM 2.6, 2.7, and 2.8.</li>
-  <li>Added a buildbot for 2.6, 2.7, and trunk. A 2.8 buildbot will be coming
-    soon following release.</li>
-  <li>Fixed many C++ code issues to allow building with Clang++. Mostly
-    complete, except for the version of MiniSAT which is inside the KLEE STP
-    version.</li>
-  <li>Improved support for building with separate source and build
-    directories.</li>
-  <li>Added support for "long double" on x86.</li>
-  <li>Initial work on KLEE support for using 'lit' test runner instead of
-    DejaGNU.</li>
-  <li>Added <tt>configure</tt> support for using an external version of
-    STP.</li>
-</ul>
-
-</div>
+<p>UPDATE!</p>
+</div>-->
 
 
 <!-- *********************************************************************** -->
-<div class="doc_section">
-  <a name="externalproj">External Open Source Projects Using LLVM 2.8</a>
-</div>
+<h1>
+  <a name="externalproj">External Open Source Projects Using LLVM 2.9</a>
+</h1>
 <!-- *********************************************************************** -->
 
 <div class="doc_text">
 
 <p>An exciting aspect of LLVM is that it is used as an enabling technology for
    a lot of other language and tools projects.  This section lists some of the
-   projects that have already been updated to work with LLVM 2.8.</p>
+   projects that have already been updated to work with LLVM 2.9.</p>
 </div>
 
+
 <!--=========================================================================-->
-<div class="doc_subsection">
-<a name="tce">TTA-based Codesign Environment (TCE)</a>
-</div>
+<h2>Crack Programming Language</h2>
 
 <div class="doc_text">
 <p>
-<a href="http://tce.cs.tut.fi/">TCE</a> is a toolset for designing
-application-specific processors (ASP) based on the Transport triggered
-architecture (TTA). The toolset provides a complete co-design flow from C/C++
-programs down to synthesizable VHDL and parallel program binaries. Processor
-customization points include the register files, function units, supported
-operations, and the interconnection network.</p>
+<a href="http://code.google.com/p/crack-language/">Crack</a> aims to provide the
+ease of development of a scripting language with the performance of a compiled
+language. The language derives concepts from C++, Java and Python, incorporating
+object-oriented programming, operator overloading and strong typing.</p>
+</div>
+  
+  
+<!--=========================================================================-->
+<h2>TTA-based Codesign Environment (TCE)</h2>
+  
+<div class="doc_text">
+<p>TCE is a toolset for designing application-specific processors (ASP) based on
+the Transport triggered architecture (TTA). The toolset provides a complete
+co-design flow from C/C++ programs down to synthesizable VHDL and parallel
+program binaries. Processor customization points include the register files,
+function units, supported operations, and the interconnection network.</p>
+  
+<p>TCE uses Clang and LLVM for C/C++ language support, target independent
+optimizations and also for parts of code generation. It generates new LLVM-based
+code generators "on the fly" for the designed TTA processors and loads them in
+to the compiler backend as runtime libraries to avoid per-target recompilation
+of larger parts of the compiler chain.</p>
+</div>
 
-<p>TCE uses llvm-gcc/Clang and LLVM for C/C++ language support, target
-independent optimizations and also for parts of code generation. It generates
-new LLVM-based code generators "on the fly" for the designed TTA processors and
-loads them in to the compiler backend as runtime libraries to avoid per-target
-recompilation of larger parts of the compiler chain.</p>
 
+  
+<!--=========================================================================-->
+<h2>PinaVM</h2>
+  
+<div class="doc_text">
+<p><a href="http://gitorious.org/pinavm/pages/Home">PinaVM</a> is an open
+source, <a href="http://www.systemc.org/">SystemC</a> front-end. Unlike many
+other front-ends, PinaVM actually executes the elaboration of the
+program analyzed using LLVM's JIT infrastructure. It later enriches the
+bitcode with SystemC-specific information.</p>
 </div>
 
 <!--=========================================================================-->
-<div class="doc_subsection">
-<a name="Horizon">Horizon Bytecode Compiler</a>
-</div>
-
+<h2>Pure</h2>
+  
 <div class="doc_text">
-<p>
-<a href="http://www.quokforge.org/projects/horizon">Horizon</a> is a bytecode
-language and compiler written on top of LLVM, intended for producing
-single-address-space managed code operating systems that
-run faster than the equivalent multiple-address-space C systems.
-More in-depth blurb is available on the <a 
-href="http://www.quokforge.org/projects/horizon/wiki/Wiki">wiki</a>.</p>
-
+<p><a href="http://pure-lang.googlecode.com/">Pure</a> 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.47 has been tested and is known to work with LLVM 2.9
+  (and continues to work with older LLVM releases &gt;= 2.5).</p>
 </div>
 
 <!--=========================================================================-->
-<div class="doc_subsection">
-<a name="clamav">Clam AntiVirus</a>
-</div>
+<h2 id="icedtea">IcedTea Java Virtual Machine Implementation</h2>
 
 <div class="doc_text">
 <p>
-<a href="http://www.clamav.net">Clam AntiVirus</a> is an open source (GPL)
-anti-virus toolkit for UNIX, designed especially for e-mail scanning on mail
-gateways.  Since version 0.96 it has <a
-href="http://vrt-sourcefire.blogspot.com/2010/09/introduction-to-clamavs-low-level.html">bytecode
-signatures</a> that allow writing detections for complex malware. It
-uses LLVM's JIT to speed up the execution of bytecode on
-X86, X86-64, PPC32/64, falling back to its own interpreter otherwise.
-The git version was updated to work with LLVM 2.8.
+<a href="http://icedtea.classpath.org/wiki/Main_Page">IcedTea</a> provides a
+harness to build OpenJDK using only free software build tools and to provide
+replacements for the not-yet free parts of OpenJDK.  One of the extensions that
+IcedTea provides is a new JIT compiler named <a
+href="http://icedtea.classpath.org/wiki/ZeroSharkFaq">Shark</a> which uses LLVM
+to provide native code generation without introducing processor-dependent
+code.
 </p>
 
-<p>The <a
-href="http://git.clamav.net/gitweb?p=clamav-bytecode-compiler.git;a=blob_plain;f=docs/user/clambc-user.pdf">
-ClamAV bytecode compiler</a> uses Clang and LLVM to compile a C-like
-language, insert runtime checks, and generate ClamAV bytecode.</p>
-
+<p> OpenJDK 7 b112, IcedTea6 1.9 and IcedTea7 1.13 and later have been tested
+and are known to work with LLVM 2.9 (and continue to work with older LLVM
+releases &gt;= 2.6 as well).</p>
 </div>
 
 <!--=========================================================================-->
-<div class="doc_subsection">
-<a name="pure">Pure</a>
-</div>
-
+<h2>Glasgow Haskell Compiler (GHC)</h2>
+  
 <div class="doc_text">
-<p>
-<a href="http://pure-lang.googlecode.com/">Pure</a>
-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. 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 C interface. The interpreter uses
-LLVM as a backend to JIT-compile Pure programs to fast native code.</p>
-
-<p>Pure versions 0.44 and later have been tested and are known to work with
-LLVM 2.8 (and continue to work with older LLVM releases >= 2.5).</p>
-
-</div>
-
-<!--=========================================================================-->
-<div class="doc_subsection">
-<a name="GHC">Glasgow Haskell Compiler (GHC)</a>
-</div>
-
-<div class="doc_text">
-<p>
-<a href="http://www.haskell.org/ghc/">GHC</a> is an open source,
-state-of-the-art programming suite for
-Haskell, a standard lazy functional programming language. It includes
-an optimizing static compiler generating good code for a variety of
+<p>GHC is an open source, state-of-the-art programming suite for Haskell,
+a standard lazy functional programming language. It includes an
+optimizing static compiler generating good code for a variety of
 platforms, together with an interactive system for convenient, quick
 development.</p>
 
 <p>In addition to the existing C and native code generators, GHC 7.0 now
-supports an <a
-href="http://hackage.haskell.org/trac/ghc/wiki/Commentary/Compiler/Backends/LLVM">LLVM
-code generator</a>. GHC supports LLVM 2.7 and later.</p>
-
+supports an LLVM code generator. GHC supports LLVM 2.7 and later.</p>
 </div>
 
 <!--=========================================================================-->
-<div class="doc_subsection">
-<a name="Clay">Clay Programming Language</a>
-</div>
-
+<h2>Polly - Polyhedral optimizations for LLVM</h2>
+  
 <div class="doc_text">
-<p>
-<a href="http://tachyon.in/clay/">Clay</a> is a new systems programming
-language that is specifically designed for generic programming. It makes
-generic programming very concise thanks to whole program type propagation. It
-uses LLVM as its backend.</p>
-
+<p>Polly is a project that aims to provide advanced memory access optimizations
+to better take advantage of SIMD units, cache hierarchies, multiple cores or
+even vector accelerators for LLVM. Built around an abstract mathematical
+description based on Z-polyhedra, it provides the infrastructure to develop
+advanced optimizations in LLVM and to connect complex external optimizers. In
+its first year of existence Polly already provides an exact value-based
+dependency analysis as well as basic SIMD and OpenMP code generation support.
+Furthermore, Polly can use PoCC(Pluto) an advanced optimizer for data-locality
+and parallelism.</p>
 </div>
 
 <!--=========================================================================-->
-<div class="doc_subsection">
-<a name="llvm-py">llvm-py Python Bindings for LLVM</a>
-</div>
+<h2>Rubinius</h2>
 
 <div class="doc_text">
-<p>
-<a href="http://www.mdevan.org/llvm-py/">llvm-py</a> has been updated to work
-with LLVM 2.8.  llvm-py provides Python bindings for LLVM, allowing you to write a
-compiler backend or a VM in Python.</p>
-
+  <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>
 
 
@@ -477,118 +427,14 @@
 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 and
-2.8.</p>
+Faust compiler can now generate LLVM bitcode, and works with LLVM 2.7-2.9.</p>
 
 </div>
-
-<!--=========================================================================-->
-<div class="doc_subsection">
-<a name="jade">Jade Just-in-time Adaptive Decoder Engine</a>
-</div>
-
-<div class="doc_text">
-<p><a 
-href="http://sourceforge.net/apps/trac/orcc/wiki/JadeDocumentation">Jade</a>
-(Just-in-time Adaptive Decoder Engine) is a generic video decoder engine using
-LLVM for just-in-time compilation of video decoder configurations. Those
-configurations are designed by MPEG Reconfigurable Video Coding (RVC) committee.
-MPEG RVC standard is built on a stream-based dataflow representation of
-decoders. It is composed of a standard library of coding tools written in
-RVC-CAL language and a dataflow configuration &#8212; block diagram &#8212;
-of a decoder.</p>
-
-<p>Jade project is hosted as part of the <a href="http://orcc.sf.net">Open 
-RVC-CAL Compiler</a> and requires it to translate the RVC-CAL standard library
-of video coding tools into an LLVM assembly code.</p>
-
-</div>
-
-<!--=========================================================================-->
-<div class="doc_subsection">
-<a name="neko_llvm_jit">LLVM JIT for Neko VM</a>
-</div>
-
-<div class="doc_text">
-<p><a href="http://github.com/vava/neko_llvm_jit">Neko LLVM JIT</a>
-replaces the standard Neko JIT with an LLVM-based implementation.  While not
-fully complete, it is already providing a 1.5x speedup on 64-bit systems.
-Neko LLVM JIT requires LLVM 2.8 or later.</p>
-
-</div>
-
-<!--=========================================================================-->
-<div class="doc_subsection">
-<a name="crack">Crack Scripting Language</a>
-</div>
-
-<div class="doc_text">
-<p>
-<a href="http://code.google.com/p/crack-language/">Crack</a> aims to provide
-the ease of development of a scripting language with the performance of a
-compiled language. The language derives concepts from C++, Java and Python,
-incorporating object-oriented programming, operator overloading and strong
-typing.  Crack 0.2 works with LLVM 2.7, and the forthcoming Crack 0.2.1 release
-builds on LLVM 2.8.</p>
-
-</div>
-
-<!--=========================================================================-->
-<div class="doc_subsection">
-<a name="DresdenTM">Dresden TM Compiler (DTMC)</a>
-</div>
-
-<div class="doc_text">
-<p>
-<a href="http://tm.inf.tu-dresden.de">DTMC</a> provides support for 
-Transactional Memory, which is an easy-to-use and efficient way to synchronize 
-accesses to shared memory. Transactions can contain normal C/C++ code (e.g., 
-<code>__transaction { list.remove(x); x.refCount--; }</code>) and will be executed 
-virtually atomically and isolated from other transactions.</p>
-
-</div>
-
-<!--=========================================================================-->
-<div class="doc_subsection">
-<a name="Kai">Kai Programming Language</a>
-</div>
-
-<div class="doc_text">
-<p>
-<a href="http://www.oriontransfer.co.nz/research/kai">Kai</a> (Japanese 会 for
-meeting/gathering) is an experimental interpreter that provides a highly
-extensible runtime environment and explicit control over the compilation
-process. Programs are defined using nested symbolic expressions, which are all
-parsed into first-class values with minimal intrinsic semantics. Kai can
-generate optimised code at run-time (using LLVM) in order to exploit the nature
-of the underlying hardware and to integrate with external software libraries.
-It is a unique exploration into world of dynamic code compilation, and the
-interaction between high level and low level semantics.</p>
-
-</div>
-
-<!--=========================================================================-->
-<div class="doc_subsection">
-<a name="OSL">OSL: Open Shading Language</a>
-</div>
-
-<div class="doc_text">
-<p>
-<a href="http://code.google.com/p/openshadinglanguage/">OSL</a> is a shading
-language designed for use in physically based renderers and in particular
-production rendering. By using LLVM instead of the interpreter, it was able to
-meet its performance goals (&gt;= C-code) while retaining the benefits of
-runtime specialization and a portable high-level language.
-</p>
-
-</div>
-
-
-
+  
 <!-- *********************************************************************** -->
-<div class="doc_section">
-  <a name="whatsnew">What's New in LLVM 2.8?</a>
-</div>
+<h1>
+  <a name="whatsnew">What's New in LLVM 2.9?</a>
+</h1>
 <!-- *********************************************************************** -->
 
 <div class="doc_text">
@@ -601,60 +447,66 @@
 </div>
 
 <!--=========================================================================-->
-<div class="doc_subsection">
+<h2>
 <a name="majorfeatures">Major New Features</a>
-</div>
+</h2>
 
 <div class="doc_text">
 
-<p>LLVM 2.8 includes several major new capabilities:</p>
+<p>LLVM 2.9 includes several major new capabilities:</p>
 
 <ul>
-<li>As mentioned above, <a href="#libc++">libc++</a> and <a 
-   href="#lldb">LLDB</a> are major new additions to the LLVM collective.</li>
-<li>LLVM 2.8 now has pretty decent support for debugging optimized code.  You
-    should be able to reliably get debug info for function arguments, assuming
-    that the value is actually available where you have stopped.</li>
-<li>A new 'llvm-diff' tool is available that does a semantic diff of .ll
-    files.</li>
-<li>The <a href="#mc">MC subproject</a> has made major progress in this release.
-    Direct .o file writing support for darwin/x86[-64] is now reliable and
-    support for other targets and object file formats are in progress.</li>
-</ul>
+  
+<li>Type Based Alias Analysis (TBAA) is now implemented and turned on by default
+  in Clang.  This allows substantially better load/store optimization in some
+  cases.  TBAA can be disabled by passing -fno-strict-aliasing.
+</li>
 
+<li>This release has seen a continued focus on quality of debug information. 
+  LLVM now generates much higher fidelity debug information, particularly when
+  debugging optimized code.</li>
+
+<li>Inline assembly now supports multiple alternative constraints.</li>  
+
+<li>A new backend for the NVIDIA PTX virtual ISA (used to target its GPUs) is
+  under rapid development.  It is not generally useful in 2.9, but is making
+  rapid progress.</li>
+  
+</ul>
+  
 </div>
 
 <!--=========================================================================-->
-<div class="doc_subsection">
+<h2>
 <a name="coreimprovements">LLVM IR and Core Improvements</a>
-</div>
+</h2>
 
 <div class="doc_text">
 <p>LLVM IR has several new features for better support of new targets and that
 expose new optimization opportunities:</p>
 
 <ul>
-<li>The <a href="LangRef.html#int_libc">memcpy, memmove, and memset</a>
-  intrinsics now take address space qualified pointers and a bit to indicate
-  whether the transfer is "<a href="LangRef.html#volatile">volatile</a>" or not.
-</li>
-<li>Per-instruction debug info metadata is much faster and uses less memory by
-    using the new DebugLoc class.</li>
-<li>LLVM IR now has a more formalized concept of "<a
-    href="LangRef.html#trapvalues">trap values</a>", which allow the optimizer
-    to optimize more aggressively in the presence of undefined behavior, while
-    still producing predictable results.</li>
-<li>LLVM IR now supports two new <a href="LangRef.html#linkage">linkage
-    types</a> (linker_private_weak and linker_private_weak_def_auto) which map
-    onto some obscure MachO concepts.</li>
+<li>The <a href="LangRef.html#bitwiseops">udiv, ashr, lshr, and shl</a>
+  instructions now have support exact and nuw/nsw bits to indicate that they
+  don't overflow or shift out bits.  This is useful for optimization of <a
+    href="http://llvm.org/PR8862">pointer differences</a> and other cases.</li>
+  
+<li>LLVM IR now supports the <a href="LangRef.html#globalvars">unnamed_addr</a>
+  attribute to indicate that constant global variables with identical
+  initializers can be merged.  This fixed <a href="http://llvm.org/PR8927">an
+  issue</a> where LLVM would incorrectly merge two globals which were supposed
+  to have distinct addresses.</li>
+  
+<li>The new <a href="LangRef.html#fnattrs">hotpatch attribute</a> has been added
+  to allow runtime patching of functions.</li> 
 </ul>
 
 </div>
 
 <!--=========================================================================-->
-<div class="doc_subsection">
+<h2>
 <a name="optimizer">Optimizer Improvements</a>
-</div>
+</h2>
 
 <div class="doc_text">
 
@@ -662,45 +514,67 @@
 release includes a few major enhancements and additions to the optimizers:</p>
 
 <ul>
-<li>As mentioned above, the optimizer now has support for updating debug
-   information as it goes.  A key aspect of this is the new <a
-   href="SourceLevelDebugging.html#format_common_value">llvm.dbg.value</a>
-   intrinsic.  This intrinsic represents debug info for variables that are
-   promoted to SSA values (typically by mem2reg or the -scalarrepl passes).</li>
+<li>Link Time Optimization (LTO) has been improved to use MC for parsing inline
+  assembly and now can build large programs like Firefox 4 on both Mac OS X and
+  Linux.</li>
+  
+<li>The new -loop-idiom pass recognizes memset/memcpy loops (and memset_pattern
+  on darwin), turning them into library calls, which are typically better
+  optimized than inline code.  If you are building a libc and notice that your
+  memcpy and memset functions are compiled into infinite recursion, please build
+  with -ffreestanding or -fno-builtin to disable this pass.</li>
+  
+<li>A new -early-cse pass does a fast pass over functions to fold constants,
+  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>
 
-<li>The JumpThreading pass is now much more aggressive about implied value
-    relations, allowing it to thread conditions like "a == 4" when a is known to
-    be 13 in one of the predecessors of a block.  It does this in conjunction
-    with the new LazyValueInfo analysis pass.</li>
-<li>The new RegionInfo analysis pass identifies single-entry single-exit regions
-    in the CFG.  You can play with it with the "opt -regions -analyze" or
-    "opt -view-regions" commands.</li>
-<li>The loop optimizer has significantly improved strength reduction and analysis
-  capabilities.  Notably it is able to build on the trap value and signed
-  integer overflow information to optimize &lt;= and &gt;= loops.</li>
-<li>The CallGraphSCCPassManager now has some basic support for iterating within
-    an SCC when a optimizer devirtualizes a function call.  This allows inlining
-    through indirect call sites that are devirtualized by store-load forwarding
-    and other optimizations.</li>
-<li>The new <A href="Passes.html#loweratomic">-loweratomic</a> pass is available
-    to lower atomic instructions into their non-atomic form.  This can be useful
-    to optimize generic code that expects to run in a single-threaded
-    environment.</li>
+<li>A new -loop-instsimplify pass is used to clean up loop bodies in the loop
+  optimizer.</li>
+  
+<li>The new TargetLibraryInfo interface allows mid-level optimizations to know
+  whether the current target's runtime library has certain functions.  For
+  example, the optimizer can now transform integer-only printf calls to call
+  iprintf, allowing reduced code size for embedded C libraries (e.g. newlib).
+</li>
+    
+<li>LLVM has a new <a href="WritingAnLLVMPass.html#RegionPass">RegionPass</a>
+  infrastructure for region-based optimizations.</li>
+
+<li>Several optimizer passes have been substantially sped up:
+  GVN is much faster on functions with deep dominator trees and lots of basic
+  blocks.  The dominator tree and dominance frontier passes are much faster to
+  compute, and preserved by more passes (so they are computed less often).  The
+  -scalar-repl pass is also much faster and doesn't use DominanceFrontier.
+</li>
+
+<li>The Dead Store Elimination pass is more aggressive optimizing stores of
+  different types: e.g. a large store following a small one to the same address.
+  The MemCpyOptimizer pass handles several new forms of memcpy elimination.</li>
+  
+<li>LLVM now optimizes various idioms for overflow detection into check of the
+  flag register on various CPUs.  For example, we now compile:
+  
+  <pre>
+   unsigned long t = a+b;
+   if (t &lt; a) ...
+  </pre>
+  into:
+  <pre>
+   addq %rdi, %rbx
+   jno  LBB0_2
+  </pre>
+</li>
+  
 </ul>
 
-<!--
-<p>In addition to these features that are done in 2.8, there is preliminary
-   support in the release for Type Based Alias Analysis 
-  Preliminary work on TBAA but not usable in 2.8.
-  New CorrelatedValuePropagation pass, not on by default in 2.8 yet.
--->
-
 </div>
 
 <!--=========================================================================-->
-<div class="doc_subsection">
+<h2>
 <a name="mc">MC Level Improvements</a>
-</div>
+</h2>
 
 <div class="doc_text">
 <p>
@@ -709,26 +583,39 @@
 and a number of other related areas that CPU instruction-set level tools work
 in.</p>
 
-<p>The MC subproject has made great leaps in LLVM 2.8.  For example, support for
-   directly writing .o files from LLC (and clang) now works reliably for
-   darwin/x86[-64] (including inline assembly support) and the integrated
-   assembler is turned on by default in Clang for these targets.  This provides
-   improved compile times among other things.</p>
-
 <ul>
-<li>The entire compiler has converted over to using the MCStreamer assembler API
-    instead of writing out a .s file textually.</li>
-<li>The "assembler parser" is far more mature than in 2.7, supporting a full
-    complement of directives, now supports assembler macros, etc.</li>
-<li>The "assembler backend" has been completed, including support for relaxation
-    relocation processing and all the other things that an assembler does.</li>
-<li>The MachO file format support is now fully functional and works.</li>
-<li>The MC disassembler now fully supports ARM and Thumb.  ARM assembler support
-    is still in early development though.</li>
-<li>The X86 MC assembler now supports the X86 AES and AVX instruction set.</li>
-<li>Work on ELF and COFF object files and ARM target support is well underway,
-    but isn't useful yet in LLVM 2.8.  Please contact the llvmdev mailing list
-    if you're interested in this.</li>
+<li>ELF MC support has matured enough for the integrated assembler to be turned
+  on by default in Clang on X86-32 and X86-64 ELF systems.</li>
+  
+<li>MC supports and CodeGen uses the <tt>.file</tt> and <tt>.loc</tt> directives
+  for producing line number debug info. This produces more compact line
+  tables and easier to read .s files.</li>
+  
+<li>MC supports the <tt>.cfi_*</tt> directives for producing DWARF
+  frame information, but it is still not used by CodeGen by default.</li>
+
+  
+<li>The MC assembler now generates much better diagnostics for common errors,
+  is much faster at matching instructions, is much more bug-compatible with
+  the GAS assembler, and is now generally useful for a broad range of X86
+  assembly.</li>
+  
+<li>We now have some basic <a href="CodeGenerator.html#mc">internals
+  documentation</a> for MC.</li>
+  
+<li>.td files can now specify assembler aliases directly with the <a 
+   href="CodeGenerator.html#na_instparsing">MnemonicAlias and InstAlias</a>
+   tblgen classes.</li>
+  
+<li>LLVM now has an experimental format-independent object file manipulation
+  library (lib/Object).  It supports both PE/COFF and ELF.  The llvm-nm tool has
+  been extended to work with native object files, and the new llvm-objdump tool
+  supports disassembly of object files (but no relocations are displayed yet).
+</li>
+  
+<li>Win32 PE-COFF support in the MC assembler has made a lot of progress in the
+  2.9 timeframe, but is still not generally useful.</li>
+
 </ul>
 
 <p>For more information, please see the <a
@@ -736,13 +623,12 @@
 LLVM MC Project Blog Post</a>.
 </p>
 
-</div>	
-
+</div>
 
 <!--=========================================================================-->
-<div class="doc_subsection">
+<h2>
 <a name="codegen">Target Independent Code Generator Improvements</a>
-</div>
+</h2>
 
 <div class="doc_text">
 
@@ -751,343 +637,187 @@
 it run faster:</p>
 
 <ul>
-<li>The clang/gcc -momit-leaf-frame-pointer argument is now supported.</li>
-<li>The clang/gcc -ffunction-sections and -fdata-sections arguments are now
-    supported on ELF targets (like GCC).</li>
-<li>The MachineCSE pass is now tuned and on by default.  It eliminates common
-    subexpressions that are exposed when lowering to machine instructions.</li>
-<li>The "local" register allocator was replaced by a new "fast" register
-    allocator.  This new allocator (which is often used at -O0) is substantially
-    faster and produces better code than the old local register allocator.</li>
-<li>A new LLC "-regalloc=default" option is available, which automatically
-    chooses a register allocator based on the -O optimization level.</li>
-<li>The common code generator code was modified to promote illegal argument and
-    return value vectors to wider ones when possible instead of scalarizing
-    them.  For example, &lt;3 x float&gt; will now pass in one SSE register
-    instead of 3 on X86.  This generates substantially better code since the
-    rest of the code generator was already expecting this.</li>
-<li>The code generator uses a new "COPY" machine instruction.  This speeds up
-    the code generator and eliminates the need for targets to implement the 
-    isMoveInstr hook.  Also, the copyRegToReg hook was renamed to copyPhysReg
-    and simplified.</li>
-<li>The code generator now has a "LocalStackSlotPass", which optimizes stack
-    slot access for targets (like ARM) that have limited stack displacement
-    addressing.</li>
-<li>A new "PeepholeOptimizer" is available, which eliminates sign and zero
-    extends, and optimizes away compare instructions when the condition result
-    is available from a previous instruction.</li>
-<li>Atomic operations now get legalized into simpler atomic operations if not
-    natively supported, easing the implementation burden on targets.</li>
-<li>We have added two new bottom-up pre-allocation register pressure aware schedulers:
-<ol>
-<li>The hybrid scheduler schedules aggressively to minimize schedule length when registers are available and avoid overscheduling in high pressure situations.</li>
-<li>The instruction-level-parallelism scheduler schedules for maximum ILP when registers are available and avoid overscheduling in high pressure situations.</li>
-</ol></li>
-<li>The tblgen type inference algorithm was rewritten to be more consistent and
-     diagnose more target bugs.  If you have an out-of-tree backend, you may
-     find that it finds bugs in your target description.  This support also
-     allows limited support for writing patterns for instructions that return
-     multiple results (e.g. a virtual register and a flag result).  The 
-     'parallel' modifier in tblgen was removed, you should use the new support
-     for multiple results instead.</li>
-<li>A new (experimental) "-rendermf" pass is available which renders a
-    MachineFunction into HTML, showing live ranges and other useful
-    details.</li>
-<li>The new SubRegIndex tablegen class allows subregisters to be indexed
-    symbolically instead of numerically.  If your target uses subregisters you
-    will need to adapt to use SubRegIndex when you upgrade to 2.8.</li>
-<!-- SplitKit -->
+<li>The pre-register-allocation (preRA) instruction scheduler models register
+  pressure much more accurately in some cases. This allows the adoption of more
+  aggressive scheduling heuristics without causing spills to be generated.
+</li>
+  
+<li>LiveDebugVariables is a new pass that keeps track of debugging information
+  for user variables that are promoted to registers in optimized builds.</li>  
 
-<li>The -fast-isel instruction selection path (used at -O0 on X86) was rewritten
-    to work bottom-up on basic blocks instead of top down.  This makes it
-    slightly faster (because the MachineDCE pass is not needed any longer) and
-    allows it to generate better code in some cases.</li>
+<li>The scheduler now models operand latency and pipeline forwarding.</li>
 
+<li>A major register allocator infrastructure rewrite is underway.  It is not on
+    by default for 2.9 and you are not advised to use it, but it has made
+    substantial progress in the 2.9 timeframe:
+  <ul>
+  <li>A new -regalloc=basic "basic" register allocator can be used as a simple
+      fallback when debugging.  It uses the new infrastructure.</li>
+  <li>New infrastructure is in place for live range splitting.  "SplitKit" can
+      break a live interval into smaller pieces while preserving SSA form, and
+      SpillPlacement can help find the best split points. This is a work in
+      progress so the API is changing quickly.</li>
+   <li>The inline spiller has learned to clean up after live range splitting. It
+      can hoist spills out of loops, and it can eliminate redundant spills.</li>
+   <li>Rematerialization works with live range splitting.</li>
+   <li>The new "greedy" register allocator using live range splitting. This will
+     be the default register allocator in the next LLVM release, but it is not
+     turned on by default in 2.9.</li>
+   </ul>
+</li>
 </ul>
 </div>
 
 <!--=========================================================================-->
-<div class="doc_subsection">
+<h2>
 <a name="x86">X86-32 and X86-64 Target Improvements</a>
-</div>
+</h2>
 
 <div class="doc_text">
 <p>New features and major changes in the X86 target include:
 </p>
 
 <ul>
-<li>The X86 backend now supports holding X87 floating point stack values
-    in registers across basic blocks, dramatically improving performance of code
-    that uses long double, and when targeting CPUs that don't support SSE.</li>
-
-<li>The X86 backend now uses a SSEDomainFix pass to optimize SSE operations.  On
-    Nehalem ("Core i7") and newer CPUs there is a 2 cycle latency penalty on
-    using a register in a different domain than where it was defined. This pass
-    optimizes away these stalls.</li>
-
-<li>The X86 backend now promotes 16-bit integer operations to 32-bits when
-    possible. This avoids 0x66 prefixes, which are slow on some
-    microarchitectures and bloat the code on all of them.</li>
-
-<li>The X86 backend now supports the Microsoft "thiscall" calling convention,
-    and a <a href="LangRef.html#callingconv">calling convention</a> to support
-    <a href="#GHC">ghc</a>.</li>
-
-<li>The X86 backend supports a new "llvm.x86.int" intrinsic, which maps onto
-    the X86 "int $42" and "int3" instructions.</li>
-
-<li>At the IR level, the &lt;2 x float&gt; datatype is now promoted and passed
-    around as a &lt;4 x float&gt; instead of being passed and returned as an MMX
-    vector.  If you have a frontend that uses this, please pass and return a
-    &lt;2 x i32&gt; instead (using bitcasts).</li>
-
-<li>When printing .s files in verbose assembly mode (the default for clang -S),
-    the X86 backend now decodes X86 shuffle instructions and prints human
-    readable comments after the most inscrutable of them, e.g.:
-    
-<pre>
-  insertps $113, %xmm3, %xmm0 <i># xmm0 = zero,xmm0[1,2],xmm3[1]</i>
-  unpcklps %xmm1, %xmm0       <i># xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]</i>
-  pshufd   $1, %xmm1, %xmm1   <i># xmm1 = xmm1[1,0,0,0]</i>
-</pre>
+<li>LLVM 2.9 includes a complete reimplementation of the MMX instruction set.
+  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 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.
 </li>
-        
+  
+<li>X86 support for FS/GS relative loads and stores using <a 
+    href="CodeGenerator.html#x86_memory">address space 256/257</a> works reliably
+    now.</li>
+  
+<li>LLVM 2.9 generates much better code in several cases by using adc/sbb to
+   avoid generation of conditional move instructions for conditional increment
+   and other idioms.</li>
+
+<li>The X86 backend has adopted a new preRA scheduling mode, "list-ilp", to
+  shorten the height of instruction schedules without inducing register spills.
+</li>
+
+<li>The MC assembler supports 3dNow! and 3DNowA instructions.</li>
+  
+<li>Several bugs have been fixed for Windows x64 code generator.</li>
 </ul>
 
 </div>
 
 <!--=========================================================================-->
-<div class="doc_subsection">
+<h2>
 <a name="ARM">ARM Target Improvements</a>
-</div>
+</h2>
 
 <div class="doc_text">
 <p>New features of the ARM target include:
 </p>
 
 <ul>
-<li>The ARM backend now optimizes tail calls into jumps.</li>
-<li>Scheduling is improved through the new list-hybrid scheduler as well
-    as through better modeling of structural hazards.</li>
-<li><a href="LangRef.html#int_fp16">Half float</a> instructions are now
-    supported.</li>
-<li>NEON support has been improved to model instructions which operate onto 
-    multiple consecutive registers more aggressively.  This avoids lots of
-    extraneous register copies.</li>
-<li>The ARM backend now uses a new "ARMGlobalMerge" pass, which merges several
-    global variables into one, saving extra address computation (all the global
-    variables can be accessed via same base address) and potentially reducing
-    register pressure.</li>
+<li>The ARM backend now has a fast instruction selector, which dramatically
+     improves -O0 compile times.</li>
+<li>The ARM backend has new tuning for Cortex-A8 and Cortex-A9 CPUs.</li>
+<li>The __builtin_prefetch builtin (and llvm.prefetch intrinsic) is compiled
+    into prefetch instructions instead of being discarded.</li>
 
-<li>The ARM backend has received many minor improvements and tweaks which lead
-    to substantially better performance in a wide range of different scenarios.
-</li>
+<li>  The ARM backend preRA scheduler now models machine resources at cycle
+  granularity. This allows the scheduler to both accurately model
+  instruction latency and avoid overcommitting functional units.</li>
 
-<li>The ARM NEON intrinsics have been substantially reworked to reduce
-    redundancy and improve code generation.  Some of the major changes are:
-  <ol>
-  <li>
-    All of the NEON load and store intrinsics (llvm.arm.neon.vld* and
-    llvm.arm.neon.vst*) take an extra parameter to specify the alignment in bytes
-    of the memory being accessed.
-  </li>
-  <li>
-    The llvm.arm.neon.vaba intrinsic (vector absolute difference and
-    accumulate) has been removed.  This operation is now represented using
-    the llvm.arm.neon.vabd intrinsic (vector absolute difference) followed by a
-    vector add.
-  </li>
-  <li>
-    The llvm.arm.neon.vabdl and llvm.arm.neon.vabal intrinsics (lengthening
-    vector absolute difference with and without accumulation) have been removed.
-    They are represented using the llvm.arm.neon.vabd intrinsic (vector absolute
-    difference) followed by a vector zero-extend operation, and for vabal,
-    a vector add.
-  </li>
-  <li>
-    The llvm.arm.neon.vmovn intrinsic has been removed.  Calls of this intrinsic
-    are now replaced by vector truncate operations.
-  </li>
-  <li>
-    The llvm.arm.neon.vmovls and llvm.arm.neon.vmovlu intrinsics have been
-    removed.  They are now represented as vector sign-extend (vmovls) and
-    zero-extend (vmovlu) operations.
-  </li>
-  <li>
-    The llvm.arm.neon.vaddl*, llvm.arm.neon.vaddw*, llvm.arm.neon.vsubl*, and
-    llvm.arm.neon.vsubw* intrinsics (lengthening vector add and subtract) have
-    been removed.  They are replaced by vector add and vector subtract operations
-    where one (vaddw, vsubw) or both (vaddl, vsubl) of the operands are either
-    sign-extended or zero-extended.
-  </li>
-  <li>
-    The llvm.arm.neon.vmulls, llvm.arm.neon.vmullu, llvm.arm.neon.vmlal*, and
-    llvm.arm.neon.vmlsl* intrinsics (lengthening vector multiply with and without
-    accumulation and subtraction) have been removed.  These operations are now
-    represented as vector multiplications where the operands are either
-    sign-extended or zero-extended, followed by a vector add for vmlal or a
-    vector subtract for vmlsl.  Note that the polynomial vector multiply
-    intrinsic, llvm.arm.neon.vmullp, remains unchanged.
-  </li>
-  </ol>
-</li>
+<li>Countless ARM microoptimizations have landed in LLVM 2.9.</li>
+</ul>
+</div>
+  
+<!--=========================================================================-->
+<h2>
+<a name="OtherTS">Other Target Specific Improvements</a>
+</h2>
 
+<div class="doc_text">
+<ul>
+<li>MicroBlaze: major updates for aggressive delay slot filler, MC-based
+  assembly printing, assembly instruction parsing, ELF .o file emission, and MC
+  instruction disassembler have landed.</li>
+
+<li>SPARC: Many improvements, including using the Y registers for
+  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.  No one seems interested in finishing
+  this final step though.</li>
+  
 </ul>
 </div>
 
-
 <!--=========================================================================-->
-<div class="doc_subsection">
+<h2>
 <a name="changes">Major Changes and Removed Features</a>
-</div>
+</h2>
 
 <div class="doc_text">
 
 <p>If you're already an LLVM user or developer with out-of-tree changes based
-on LLVM 2.7, this section lists some "gotchas" that you may run into upgrading
+on LLVM 2.8, this section lists some "gotchas" that you may run into upgrading
 from the previous release.</p>
 
 <ul>
-<li>The build configuration machinery changed the output directory names.  It
-    wasn't clear to many people that a "Release-Asserts" build was a release build
-    without asserts.  To make this more clear, "Release" does not include
-    assertions and "Release+Asserts" does (likewise, "Debug" and
-    "Debug+Asserts").</li>
-<li>The MSIL Backend was removed, it was unsupported and broken.</li>
-<li>The ABCD, SSI, and SCCVN passes were removed.  These were not fully
-    functional and their behavior has been or will be subsumed by the
-    LazyValueInfo  pass.</li>
-<li>The LLVM IR 'Union' feature was removed.  While this is a desirable feature
-    for LLVM IR to support, the existing implementation was half baked and
-    barely useful.  We'd really like anyone interested to resurrect the work and
-    finish it for a future release.</li>
-<li>If you're used to reading .ll files, you'll probably notice that .ll file
-    dumps don't produce #uses comments anymore.  To get them, run a .bc file
-    through "llvm-dis --show-annotations".</li>
-<li>Target triples are now stored in a normalized form, and all inputs from
-    humans are expected to be normalized by Triple::normalize before being
-    stored in a module triple or passed to another library.</li>
-</ul>
+<li><b>This is the last release to support the llvm-gcc frontend.</b></li>
 
-
-
-<p>In addition, many APIs have changed in this release.  Some of the major LLVM
-API changes are:</p>
-<ul>
-<li>LLVM 2.8 changes the internal order of operands in <a
-  href="http://llvm.org/doxygen/classllvm_1_1InvokeInst.html"><tt>InvokeInst</tt></a>
-  and <a href="http://llvm.org/doxygen/classllvm_1_1CallInst.html"><tt>CallInst</tt></a>.
-  To be portable across releases, please use the <tt>CallSite</tt> class and the
-  high-level accessors, such as <tt>getCalledValue</tt> and
-  <tt>setUnwindDest</tt>.
-</li>
-<li>
-  You can no longer pass use_iterators directly to cast&lt;&gt; (and similar),
-  because these routines tend to perform costly dereference operations more
-  than once. You have to dereference the iterators yourself and pass them in.
-</li>
-<li>
-  llvm.memcpy.*, llvm.memset.*, llvm.memmove.* intrinsics take an extra
-  parameter now ("i1 isVolatile"), totaling 5 parameters, and the pointer
-  operands are now address-space qualified.
-  If you were creating these intrinsic calls and prototypes yourself (as opposed
-  to using Intrinsic::getDeclaration), you can use
-  UpgradeIntrinsicFunction/UpgradeIntrinsicCall to be portable across releases.
-</li>
-<li>
-  SetCurrentDebugLocation takes a DebugLoc now instead of a MDNode.
-  Change your code to use
-  SetCurrentDebugLocation(DebugLoc::getFromDILocation(...)).
-</li>
-<li>
-  The <tt>RegisterPass</tt> and <tt>RegisterAnalysisGroup</tt> templates are
-  considered deprecated, but continue to function in LLVM 2.8.  Clients are  
-  strongly advised to use the upcoming <tt>INITIALIZE_PASS()</tt> and
-  <tt>INITIALIZE_AG_PASS()</tt> macros instead.
-</li>
-<li>
-  The constructor for the Triple class no longer tries to understand odd triple
-  specifications.  Frontends should ensure that they only pass valid triples to
-  LLVM.  The Triple::normalize utility method has been added to help front-ends
-  deal with funky triples.
-</li>
-<li>
-  The signature of the <tt>GCMetadataPrinter::finishAssembly</tt> virtual
-  function changed: the <tt>raw_ostream</tt> and <tt>MCAsmInfo</tt> arguments
-  were dropped.  GC plugins which compute stack maps must be updated to avoid
-  having the old definition overload the new signature.
-</li>
-<li>
-  The signature of <tt>MemoryBuffer::getMemBuffer</tt> changed.  Unfortunately
-  calls intended for the old version still compile, but will not work correctly,
-  leading to a confusing error about an invalid header in the bitcode.
-</li>
+<li>LLVM has a new <a href="CodingStandards.html#ll_naming">naming
+  convention standard</a>, though the codebase hasn't fully adopted it yet.</li>
   
-<li>
-  Some APIs were renamed:
-  <ul>
-  <li>llvm_report_error -&gt; report_fatal_error</li>
-  <li>llvm_install_error_handler -&gt; install_fatal_error_handler</li>
-  <li>llvm::DwarfExceptionHandling -&gt; llvm::JITExceptionHandling</li>
-  <li>VISIBILITY_HIDDEN -&gt; LLVM_LIBRARY_VISIBILITY</li>
-  </ul>
-</li>
+<li>The new DIBuilder class provides a simpler interface for front ends to
+    encode debug info in LLVM IR, and has replaced DIFactory.</li>
 
-<li>
-  Some public headers were renamed:
-  <ul>
-    <li><tt>llvm/Assembly/AsmAnnotationWriter.h</tt> was renamed
-    to <tt>llvm/Assembly/AssemblyAnnotationWriter.h</tt>
-    </li>
-  </ul>
+<li>LLVM IR and other tools always work on normalized target triples (which have
+  been run through <tt>Triple::normalize</tt>).</li>
+
+<li>The target triple x86_64--mingw64 is obsoleted. Use x86_64--mingw32 
+  instead.</li>
+
+<li>The PointerTracking pass has been removed from mainline, and moved to The
+  ClamAV project (its only client).</li>
+    
+<li>The LoopIndexSplit, LiveValues, SimplifyHalfPowrLibCalls, GEPSplitter, and
+  PartialSpecialization passes were removed.  They were unmaintained,
+  buggy, or deemed to be a bad idea.</li>
 </ul>
 
 </div>
 
 <!--=========================================================================-->
-<div class="doc_subsection">
-<a name="devtree_changes">Development Infrastructure Changes</a>
-</div>
+<h2>
+<a name="api_changes">Internal API Changes</a>
+</h2>
 
 <div class="doc_text">
 
-<p>This section lists changes to the LLVM development infrastructure. This
-mostly impacts users who actively work on LLVM or follow development on
-mainline, but may also impact users who leverage the LLVM build infrastructure
-or are interested in LLVM qualification.</p>
+<p>In addition, many APIs have changed in this release.  Some of the major
+  LLVM API changes are:</p>
 
 <ul>
-  <li>The default for <tt>make check</tt> is now to use
-  the <a href="http://llvm.org/cmds/lit.html">lit</a> testing tool, which is
-  part of LLVM itself. You can use <tt>lit</tt> directly as well, or use
-  the <tt>llvm-lit</tt> tool which is created as part of a Makefile or CMake
-  build (and knows how to find the appropriate tools). See the <tt>lit</tt>
-  documentation and the <a href="http://blog.llvm.org/2009/12/lit-it.html">blog
-  post</a>, and <a href="http://llvm.org/bugs/show_bug.cgi?id=5217">PR5217</a>
-  for more information.</li>
+<li>include/llvm/System merged into include/llvm/Support.</li>
+<li>The <a href="http://llvm.org/PR5207">llvm::APInt API</a> was significantly
+  cleaned up.</li>
 
-  <li>The LLVM <tt>test-suite</tt> infrastructure has a new "simple" test format
-  (<tt>make TEST=simple</tt>). The new format is intended to require only a
-  compiler and not a full set of LLVM tools. This makes it useful for testing
-  released compilers, for running the test suite with other compilers (for
-  performance comparisons), and makes sure that we are testing the compiler as
-  users would see it. The new format is also designed to work using reference
-  outputs instead of comparison to a baseline compiler, which makes it run much
-  faster and makes it less system dependent.</li>
+<li>In the code generator, MVT::Flag was renamed to MVT::Glue to more accurately
+  describe its behavior.</li>
 
-  <li>Significant progress has been made on a new interface to running the
-  LLVM <tt>test-suite</tt> (aka the LLVM "nightly tests") using
-  the <a href="http://llvm.org/docs/lnt">LNT</a> infrastructure. The LNT
-  interface to the <tt>test-suite</tt> brings significantly improved reporting
-  capabilities for monitoring the correctness and generated code quality
-  produced by LLVM over time.</li>
+<li>The system_error header from C++0x was added, and is now pervasively used to
+  capture and handle i/o and other errors in LLVM.</li>
+  
+<li>The old sys::Path API has been deprecated in favor of the new PathV2 API,
+    which is more efficient and flexible.</li>
 </ul>
 </div>
 
 <!-- *********************************************************************** -->
-<div class="doc_section">
+<h1>
   <a name="knownproblems">Known Problems</a>
-</div>
+</h1>
 <!-- *********************************************************************** -->
 
 <div class="doc_text">
@@ -1100,9 +830,9 @@
 </div>
 
 <!-- ======================================================================= -->
-<div class="doc_subsection">
+<h2>
   <a name="experimental">Experimental features included with this release</a>
-</div>
+</h2>
 
 <div class="doc_text">
 
@@ -1114,18 +844,19 @@
 href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVMdev list</a>.</p>
 
 <ul>
-<li>The Alpha, Blackfin, CellSPU, MicroBlaze, MSP430, MIPS, SystemZ
+<li>The Alpha, Blackfin, CellSPU, MicroBlaze, MSP430, MIPS, PTX, SystemZ
     and XCore backends are experimental.</li>
 <li><tt>llc</tt> "<tt>-filetype=obj</tt>" is experimental on all targets
-    other than darwin-i386 and darwin-x86_64.</li>
+    other than darwin and ELF X86 systems.</li>
+    
 </ul>
 
 </div>
 
 <!-- ======================================================================= -->
-<div class="doc_subsection">
+<h2>
   <a name="x86-be">Known problems with the X86 back-end</a>
-</div>
+</h2>
 
 <div class="doc_text">
 
@@ -1134,21 +865,31 @@
     all <a href="http://llvm.org/PR879">inline assembly that uses the X86
     floating point stack</a>.  It supports the 'f' and 't' constraints, but not
     'u'.</li>
-  <li>Win64 code generation wasn't widely tested. Everything should work, but we
-    expect small issues to happen. Also, llvm-gcc cannot build the mingw64
-    runtime currently due to lack of support for the 'u' inline assembly
-    constraint and for X87 floating point inline assembly.</li>
   <li>The X86-64 backend does not yet support the LLVM IR instruction
       <tt>va_arg</tt>. Currently, front-ends support variadic
       argument constructs on X86-64 by lowering them manually.</li>
+  <li>Windows x64 (aka Win64) code generator has a few issues.
+    <ul>
+      <li>llvm-gcc cannot build the mingw-w64 runtime currently
+       due to lack of support for the 'u' inline assembly
+       constraint and for X87 floating point inline assembly.</li>
+      <li>On mingw-w64, you will see unresolved symbol <tt>__chkstk</tt>
+       due to <a href="http://llvm.org/bugs/show_bug.cgi?id=8919">Bug 8919</a>.
+       It is fixed in <a href="http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20110321/118499.html">r128206</a>.</li>
+      <li>Miss-aligned MOVDQA might crash your program. It is due to
+       <a href="http://llvm.org/bugs/show_bug.cgi?id=9483">Bug 9483</a>,
+       lack of handling aligned internal globals.</li>
+      </ul>
+  </li>
+
 </ul>
 
 </div>
 
 <!-- ======================================================================= -->
-<div class="doc_subsection">
+<h2>
   <a name="ppc-be">Known problems with the PowerPC back-end</a>
-</div>
+</h2>
 
 <div class="doc_text">
 
@@ -1160,9 +901,9 @@
 </div>
 
 <!-- ======================================================================= -->
-<div class="doc_subsection">
+<h2>
   <a name="arm-be">Known problems with the ARM back-end</a>
-</div>
+</h2>
 
 <div class="doc_text">
 
@@ -1177,9 +918,9 @@
 </div>
 
 <!-- ======================================================================= -->
-<div class="doc_subsection">
+<h2>
   <a name="sparc-be">Known problems with the SPARC back-end</a>
-</div>
+</h2>
 
 <div class="doc_text">
 
@@ -1191,9 +932,9 @@
 </div>
 
 <!-- ======================================================================= -->
-<div class="doc_subsection">
+<h2>
   <a name="mips-be">Known problems with the MIPS back-end</a>
-</div>
+</h2>
 
 <div class="doc_text">
 
@@ -1204,9 +945,9 @@
 </div>
 
 <!-- ======================================================================= -->
-<div class="doc_subsection">
+<h2>
   <a name="alpha-be">Known problems with the Alpha back-end</a>
-</div>
+</h2>
 
 <div class="doc_text">
 
@@ -1219,9 +960,9 @@
 </div>
 
 <!-- ======================================================================= -->
-<div class="doc_subsection">
+<h2>
   <a name="c-be">Known problems with the C back-end</a>
-</div>
+</h2>
 
 <div class="doc_text">
 
@@ -1242,12 +983,14 @@
 
 
 <!-- ======================================================================= -->
-<div class="doc_subsection">
+<h2>
   <a name="llvm-gcc">Known problems with the llvm-gcc front-end</a>
-</div>
+</h2>
 
 <div class="doc_text">
 
+<p><b>LLVM 2.9 will be the last release of llvm-gcc.</b></p>
+
 <p>llvm-gcc is generally very stable for the C family of languages.  The only
    major language feature of GCC not supported by llvm-gcc is the
    <tt>__builtin_apply</tt> family of builtins.   However, some extensions
@@ -1268,9 +1011,9 @@
 </div>
 
 <!-- *********************************************************************** -->
-<div class="doc_section">
+<h1>
   <a name="additionalinfo">Additional Information</a>
-</div>
+</h1>
 <!-- *********************************************************************** -->
 
 <div class="doc_text">
