diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
index f3d87c6..8df6cfc 100644
--- a/docs/ReleaseNotes.html
+++ b/docs/ReleaseNotes.html
@@ -4,17 +4,17 @@
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   <link rel="stylesheet" href="llvm.css" type="text/css">
-  <title>LLVM 2.6 Release Notes</title>
+  <title>LLVM 2.7 Release Notes</title>
 </head>
 <body>
 
-<div class="doc_title">LLVM 2.6 Release Notes</div>
+<div class="doc_title">LLVM 2.7 Release Notes</div>
 
 <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.6</a></li>
-  <li><a href="#whatsnew">What's New in LLVM 2.6?</a></li>
+  <li><a href="#externalproj">External Projects Using LLVM 2.7</a></li>
+  <li><a href="#whatsnew">What's New in LLVM 2.7?</a></li>
   <li><a href="GettingStarted.html">Installation Instructions</a></li>
   <li><a href="#portability">Portability and Supported Platforms</a></li>
   <li><a href="#knownproblems">Known Problems</a></li>
@@ -25,6 +25,12 @@
   <p>Written by the <a href="http://llvm.org">LLVM Team</a></p>
 </div>
 
+<h1 style="color:red">These are in-progress notes for the upcoming LLVM 2.7
+release.<br>
+You may prefer the
+<a href="http://llvm.org/releases/2.6/docs/ReleaseNotes.html">LLVM 2.6
+Release Notes</a>.</h1>
+
 <!-- *********************************************************************** -->
 <div class="doc_section">
   <a name="intro">Introduction</a>
@@ -34,7 +40,7 @@
 <div class="doc_text">
 
 <p>This document contains the release notes for the LLVM Compiler
-Infrastructure, release 2.6.  Here we describe the status of LLVM, including
+Infrastructure, release 2.7.  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>
@@ -63,7 +69,7 @@
 -->
  
    
-<!-- Unfinished features in 2.6:
+<!-- Features that need text if they're finished for 2.7:
   gcc plugin.
   strong phi elim
   variable debug info for optimized code
@@ -94,7 +100,7 @@
 
 <div class="doc_text">
 <p>
-The LLVM 2.6 distribution currently consists of code from the core LLVM
+The LLVM 2.7 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
@@ -111,31 +117,12 @@
 
 <div class="doc_text">
 
-<p>The <a href="http://clang.llvm.org/">Clang project</a> is an effort to build
-a set of new 'LLVM native' front-end technologies for the C family of languages.
-LLVM 2.6 is the first release to officially include Clang, and it provides a
-production quality C and Objective-C compiler.  If you are interested in <a 
-href="http://clang.llvm.org/performance.html">fast compiles</a> and
-<a href="http://clang.llvm.org/diagnostics.html">good diagnostics</a>, we
-encourage you to try it out.  Clang currently compiles typical Objective-C code
-3x faster than GCC and compiles C code about 30% faster than GCC at -O0 -g
-(which is when the most pressure is on the frontend).</p>
+<p>The <a href="http://clang.llvm.org/">Clang project</a> is ...</p>
 
-<p>In addition to supporting these languages, C++ support is also <a
-href="http://clang.llvm.org/cxx_status.html">well under way</a>, and mainline
-Clang is able to parse the libstdc++ 4.2 headers and even codegen simple apps.
-If you are interested in Clang C++ support or any other Clang feature, we
-strongly encourage you to get involved on the <a 
-href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">Clang front-end mailing
-list</a>.</p>
-
-<p>In the LLVM 2.6 time-frame, the Clang team has made many improvements:</p>
+<p>In the LLVM 2.7 time-frame, the Clang team has made many improvements:</p>
 
 <ul>
-<li>C and Objective-C support are now considered production quality.</li>
-<li>AuroraUX, FreeBSD and OpenBSD are now supported.</li>
-<li>Most of Objective-C 2.0 is now supported with the GNU runtime.</li>
-<li>Many many bugs are fixed and lots of features have been added.</li>
+<li>...</li>
 </ul>
 </div>
 
@@ -146,24 +133,13 @@
 
 <div class="doc_text">
 
-<p>Previously announced in the 2.4 and 2.5 LLVM releases, the Clang project also
+<p>Previously announced in the 2.4, 2.5, and 2.6 LLVM releases, the Clang project also
 includes an early stage static source code analysis tool for <a
 href="http://clang.llvm.org/StaticAnalysis.html">automatically finding bugs</a>
 in C and Objective-C programs. The tool performs checks to find
 bugs that occur on a specific path within a program.</p>
 
-<p>In the LLVM 2.6 time-frame, the analyzer core has undergone several important
-improvements and cleanups and now includes a new <em>Checker</em> interface that
-is intended to eventually serve as a basis for domain-specific checks. Further,
-in addition to generating HTML files for reporting analysis results, the
-analyzer can now also emit bug reports in a structured XML format that is
-intended to be easily readable by other programs.</p>
-
-<p>The set of checks performed by the static analyzer continues to expand, and
-future plans for the tool include full source-level inter-procedural analysis
-and deeper checks such as buffer overrun detection. There are many opportunities
-to extend and enhance the static analyzer, and anyone interested in working on
-this project is encouraged to get involved!</p>
+<p>In the LLVM 2.7 time-frame, the analyzer core has ...</p>
 
 </div>
 
@@ -180,20 +156,13 @@
 compilation.</p>
 
 <p>
-VMKit version 0.26 builds with LLVM 2.6 and you can find it on its
+VMKit version ?? builds with LLVM 2.7 and you can find it on its
 <a href="http://vmkit.llvm.org/releases/">web page</a>. The release includes
 bug fixes, cleanup and new features. The major changes are:</p>
 
 <ul>
 
-<li>A new llcj tool to generate shared libraries or executables of Java
-    files.</li>
-<li>Cooperative garbage collection. </li>
-<li>Fast subtype checking (paper from Click et al [JGI'02]). </li>
-<li>Implementation of a two-word header for Java objects instead of the original
-    three-word header. </li>
-<li>Better Java specification-compliance: division by zero checks, stack
-    overflow checks, finalization and references support. </li>
+<li>...</li>
 
 </ul>
 </div>
@@ -249,22 +218,7 @@
 The goal of <a href="http://dragonegg.llvm.org/">DragonEgg</a> is to make
 gcc-4.5 act like llvm-gcc without requiring any gcc modifications whatsoever.
 <a href="http://dragonegg.llvm.org/">DragonEgg</a> is a shared library (dragonegg.so)
-that is loaded by gcc at runtime.  It uses the new gcc plugin architecture to
-disable the GCC optimizers and code generators, and schedule the LLVM optimizers
-and code generators (or direct output of LLVM IR) instead.  Currently only Linux
-and Darwin are supported, and only on x86-32 and x86-64.  It should be easy to
-add additional unix-like architectures and other processor families.  In theory
-it should be possible to use <a href="http://dragonegg.llvm.org/">DragonEgg</a>
-with any language supported by gcc, however only C and Fortran work well for the
-moment.  Ada and C++ work to some extent, while Java, Obj-C and Obj-C++ are so
-far entirely untested.  Since gcc-4.5 has not yet been released, neither has
-<a href="http://dragonegg.llvm.org/">DragonEgg</a>.  To build
-<a href="http://dragonegg.llvm.org/">DragonEgg</a> you will need to check out the
-development versions of <a href="http://gcc.gnu.org/svn.html/"> gcc</a>,
-<a href="http://llvm.org/docs/GettingStarted.html#checkout">llvm</a> and
-<a href="http://dragonegg.llvm.org/">DragonEgg</a> from their respective
-subversion repositories, and follow the instructions in the
-<a href="http://dragonegg.llvm.org/">DragonEgg</a> README.
+that is loaded by gcc at runtime.  It ...
 </p>
 
 </div>
@@ -277,29 +231,7 @@
 
 <div class="doc_text">
 <p>
-The LLVM Machine Code (MC) Toolkit project is a (very early) effort to build
-better tools for dealing with machine code, object file formats, etc.  The idea
-is to be able to generate most of the target specific details of assemblers and
-disassemblers from existing LLVM target .td files (with suitable enhancements),
-and to build infrastructure for reading and writing common object file formats.
-One of the first deliverables is to build a full assembler and integrate it into
-the compiler, which is predicted to substantially reduce compile time in some
-scenarios.
-</p>
-
-<p>In the LLVM 2.6 timeframe, the MC framework has grown to the point where it
-can reliably parse and pretty print (with some encoding information) a
-darwin/x86 .s file successfully, and has the very early phases of a Mach-O
-assembler in progress.  Beyond the MC framework itself, major refactoring of the
-LLVM code generator has started.  The idea is to make the code generator reason
-about the code it is producing in a much more semantic way, rather than a
-textual way.  For example, the code generator now uses MCSection objects to
-represent section assignments, instead of text strings that print to .section
-directives.</p>
-
-<p>MC is an early and ongoing project that will hopefully continue to lead to
-many improvements in the code generator and build infrastructure useful for many
-other situations.
+The LLVM Machine Code (MC) Toolkit project is ...
 </p>
 
 </div>	
@@ -307,7 +239,7 @@
 
 <!-- *********************************************************************** -->
 <div class="doc_section">
-  <a name="externalproj">External Open Source Projects Using LLVM 2.6</a>
+  <a name="externalproj">External Open Source Projects Using LLVM 2.7</a>
 </div>
 <!-- *********************************************************************** -->
 
@@ -315,7 +247,7 @@
 
 <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.6.</p>
+   projects that have already been updated to work with LLVM 2.7.</p>
 </div>
 
 
@@ -376,8 +308,8 @@
 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.31 and later have been tested and are known to work with
-LLVM 2.6 (and continue to work with older LLVM releases >= 2.3 as well).
+<p>Pure versions ??? and later have been tested and are known to work with
+LLVM 2.7 (and continue to work with older LLVM releases >= 2.3 as well).
 </p>
 </div>
 
@@ -460,7 +392,7 @@
 
 <!-- *********************************************************************** -->
 <div class="doc_section">
-  <a name="whatsnew">What's New in LLVM 2.6?</a>
+  <a name="whatsnew">What's New in LLVM 2.7?</a>
 </div>
 <!-- *********************************************************************** -->
 
@@ -480,28 +412,10 @@
 
 <div class="doc_text">
 
-<p>LLVM 2.6 includes several major new capabilities:</p>
+<p>LLVM 2.7 includes several major new capabilities:</p>
 
 <ul>
-<li>New <a href="#compiler-rt">compiler-rt</a>, <A href="#klee">KLEE</a>
-    and <a href="#mc">machine code toolkit</a> sub-projects.</li>
-<li>Debug information now includes line numbers when optimizations are enabled.
-    This allows statistical sampling tools like OProfile and Shark to map
-    samples back to source lines.</li>
-<li>LLVM now includes new experimental backends to support the MSP430, SystemZ
-    and BlackFin architectures.</li>
-<li>LLVM supports a new <a href="GoldPlugin.html">Gold Linker Plugin</a> which
-    enables support for <a href="LinkTimeOptimization.html">transparent
-    link-time optimization</a> on ELF targets when used with the Gold binutils
-    linker.</li>
-<li>LLVM now supports doing optimization and code generation on multiple 
-    threads.  Please see the <a href="ProgrammersManual.html#threading">LLVM
-    Programmer's Manual</a> for more information.</li>
-<li>LLVM now has experimental support for <a
-    href="http://nondot.org/~sabre/LLVMNotes/EmbeddedMetadata.txt">embedded
-    metadata</a> in LLVM IR, though the implementation is not guaranteed to be
-    final and the .bc file format may change in future releases.  Debug info 
-    does not yet use this format in LLVM 2.6.</li>
+<li>...</li>
 </ul>
 
 </div>
@@ -516,50 +430,7 @@
 expose new optimization opportunities:</p>
 
 <ul>
-<li>The <a href="LangRef.html#i_add">add</a>, <a 
-    href="LangRef.html#i_sub">sub</a> and <a href="LangRef.html#i_mul">mul</a>
-    instructions have been split into integer and floating point versions (like
-    divide and remainder), introducing new <a
-    href="LangRef.html#i_fadd">fadd</a>, <a href="LangRef.html#i_fsub">fsub</a>,
-    and <a href="LangRef.html#i_fmul">fmul</a> instructions.</li>
-<li>The <a href="LangRef.html#i_add">add</a>, <a 
-    href="LangRef.html#i_sub">sub</a> and <a href="LangRef.html#i_mul">mul</a>
-    instructions now support optional "nsw" and "nuw" bits which indicate that
-    the operation is guaranteed to not overflow (in the signed or
-    unsigned case, respectively).  This gives the optimizer more information and
-    can be used for things like C signed integer values, which are undefined on
-    overflow.</li>
-<li>The <a href="LangRef.html#i_sdiv">sdiv</a> instruction now supports an
-    optional "exact" flag which indicates that the result of the division is
-    guaranteed to have a remainder of zero.  This is useful for optimizing pointer
-    subtraction in C.</li>
-<li>The <a href="LangRef.html#i_getelementptr">getelementptr</a> instruction now
-    supports arbitrary integer index values for array/pointer indices.  This
-    allows for better code generation on 16-bit pointer targets like PIC16.</li>
-<li>The <a href="LangRef.html#i_getelementptr">getelementptr</a> instruction now
-    supports an "inbounds" optimization hint that tells the optimizer that the
-    pointer is guaranteed to be within its allocated object.</li>
-<li>LLVM now support a series of new linkage types for global values which allow
-    for better optimization and new capabilities:
-    <ul>
-    <li><a href="LangRef.html#linkage_linkonce">linkonce_odr</a> and
-        <a href="LangRef.html#linkage_weak">weak_odr</a> have the same linkage
-        semantics as the non-"odr" linkage types.  The difference is that these
-        linkage types indicate that all definitions of the specified function
-        are guaranteed to have the same semantics.  This allows inlining
-        templates functions in C++ but not inlining weak functions in C,
-        which previously both got the same linkage type.</li>
-    <li><a href="LangRef.html#linkage_available_externally">available_externally
-        </a> is a new linkage type that gives the optimizer visibility into the
-        definition of a function (allowing inlining and side effect analysis)
-        but that does not cause code to be generated.  This allows better
-        optimization of "GNU inline" functions, extern templates, etc.</li>
-    <li><a href="LangRef.html#linkage_linker_private">linker_private</a> is a
-        new linkage type (which is only useful on Mac OS X) that is used for
-        some metadata generation and other obscure things.</li>
-    </ul></li>
-<li>Finally, target-specific intrinsics can now return multiple values, which
-    is useful for modeling target operations with multiple results.</li>
+<li>...</li>
 </ul>
 
 </div>
@@ -576,23 +447,7 @@
 
 <ul>
 
-<li>The <a href="Passes.html#scalarrepl">Scalar Replacement of Aggregates</a>
-    pass has many improvements that allow it to better promote vector unions,
-    variables which are memset, and much more strange code that can happen to
-    do bitfield accesses to register operations.  An interesting change is that
-    it now produces "unusual" integer sizes (like i1704) in some cases and lets
-    other optimizers clean things up.</li>
-<li>The <a href="Passes.html#loop-reduce">Loop Strength Reduction</a> pass now
-    promotes small integer induction variables to 64-bit on 64-bit targets,
-    which provides a major performance boost for much numerical code.  It also
-    promotes shorts to int on 32-bit hosts, etc.  LSR now also analyzes pointer
-    expressions (e.g. getelementptrs), as well as integers.</li>
-<li>The <a href="Passes.html#gvn">GVN</a> pass now eliminates partial
-    redundancies of loads in simple cases.</li>
-<li>The <a href="Passes.html#inline">Inliner</a> now reuses stack space when
-    inlining similar arrays from multiple callees into one caller.</li>
-<li>LLVM includes a new experimental Static Single Information (SSI)
-    construction pass.</li>
+<li>...</li>
 
 </ul>
 
@@ -607,17 +462,7 @@
 <div class="doc_text">
 
 <ul>
-<li>LLVM has a new "EngineBuilder" class which makes it more obvious how to
-    set up and configure an ExecutionEngine (a JIT or interpreter).</li>
-<li>The JIT now supports generating more than 16M of code.</li>
-<li>When configured with <tt>--with-oprofile</tt>, the JIT can now inform
-     OProfile about JIT'd code, allowing OProfile to get line number and function
-     name information for JIT'd functions.</li>
-<li>When "libffi" is available, the LLVM interpreter now uses it, which supports
-    calling almost arbitrary external (natively compiled) functions.</li>
-<li>Clients of the JIT can now register a 'JITEventListener' object to receive
-    callbacks when the JIT emits or frees machine code. The OProfile support
-    uses this mechanism.</li>
+<li>...</li>
 </ul>
 
 </div>
@@ -635,54 +480,7 @@
 
 <ul>
 
-<li>The <tt>llc -asm-verbose</tt> option (exposed from llvm-gcc as <tt>-dA</tt>
-    and clang as <tt>-fverbose-asm</tt> or <tt>-dA</tt>) now adds a lot of 
-    useful information in comments to
-    the generated .s file.  This information includes location information (if
-    built with <tt>-g</tt>) and loop nest information.</li>
-<li>The code generator now supports a new MachineVerifier pass which is useful
-    for finding bugs in targets and codegen passes.</li>
-<li>The Machine LICM is now enabled by default.  It hoists instructions out of
-    loops (such as constant pool loads, loads from read-only stubs, vector
-    constant synthesization code, etc.) and is currently configured to only do
-    so when the hoisted operation can be rematerialized.</li>
-<li>The Machine Sinking pass is now enabled by default.  This pass moves
-    side-effect free operations down the CFG so that they are executed on fewer
-    paths through a function.</li>
-<li>The code generator now performs "stack slot coloring" of register spills,
-    which allows spill slots to be reused.  This leads to smaller stack frames
-    in cases where there are lots of register spills.</li>
-<li>The register allocator has many improvements to take better advantage of
-    commutable operations, various spiller peephole optimizations, and can now
-    coalesce cross-register-class copies.</li>
-<li>Tblgen now supports multiclass inheritance and a number of new string and
-    list operations like <tt>!(subst)</tt>, <tt>!(foreach)</tt>, <tt>!car</tt>,
-    <tt>!cdr</tt>, <tt>!null</tt>, <tt>!if</tt>, <tt>!cast</tt>.
-    These make the .td files more expressive and allow more aggressive factoring
-    of duplication across instruction patterns.</li>
-<li>Target-specific intrinsics can now be added without having to hack VMCore to
-    add them.  This makes it easier to maintain out-of-tree targets.</li>
-<li>The instruction selector is better at propagating information about values
-    (such as whether they are sign/zero extended etc.) across basic block
-    boundaries.</li>
-<li>The SelectionDAG datastructure has new nodes for representing buildvector
-    and <a href="http://llvm.org/PR2957">vector shuffle</a> operations.  This
-    makes operations and pattern matching more efficient and easier to get
-    right.</li>
-<li>The Prolog/Epilog Insertion Pass now has experimental support for performing
-    the "shrink wrapping" optimization, which moves spills and reloads around in
-    the CFG to avoid doing saves on paths that don't need them.</li>
-<li>LLVM includes new experimental support for writing ELF .o files directly
-    from the compiler.  It works well for many simple C testcases, but doesn't
-    support exception handling, debug info, inline assembly, etc.</li>
-<li>Targets can now specify register allocation hints through
-    <tt>MachineRegisterInfo::setRegAllocationHint</tt>. A regalloc hint consists
-    of hint type and physical register number. A hint type of zero specifies a
-    register allocation preference. Other hint type values are target specific
-    which are resolved by <tt>TargetRegisterInfo::ResolveRegAllocHint</tt>. An
-    example is the ARM target which uses register hints to request that the
-    register allocator provide an even / odd register pair to two virtual
-    registers.</li>
+<li>...</li>
 </ul>
 </div>
 
@@ -697,31 +495,7 @@
 
 <ul>
 
-<li>SSE 4.2 builtins are now supported.</li>
-<li>GCC-compatible soft float modes are now supported, which are typically used
-    by OS kernels.</li>
-<li>X86-64 now models implicit zero extensions better, which allows the code
-    generator to remove a lot of redundant zexts.  It also models the 8-bit "H"
-    registers as subregs, which allows them to be used in some tricky
-    situations.</li>
-<li>X86-64 now supports the "local exec" and "initial exec" thread local storage
-    model.</li>
-<li>The vector forms of the <a href="LangRef.html#i_icmp">icmp</a> and <a
-    href="LangRef.html#i_fcmp">fcmp</a> instructions now select to efficient
-    SSE operations.</li>
-<li>Support for the win64 calling conventions have improved.  The primary
-    missing feature is support for varargs function definitions.  It seems to
-    work well for many win64 JIT purposes.</li>
-<li>The X86 backend has preliminary support for <a 
-    href="CodeGenerator.html#x86_memory">mapping address spaces to segment
-    register references</a>.  This allows you to write GS or FS relative memory
-    accesses directly in LLVM IR for cases where you know exactly what you're
-    doing (such as in an OS kernel).  There are some known problems with this
-    support, but it works in simple cases.</li>
-<li>The X86 code generator has been refactored to move all global variable
-    reference logic to one place
-    (<tt>X86Subtarget::ClassifyGlobalReference</tt>) which
-    makes it easier to reason about.</li>
+<li>...</li>
 
 </ul>
 
@@ -737,11 +511,7 @@
 </p>
 
 <ul>
-<li>Support for floating-point, indirect function calls, and
-    passing/returning aggregate types to functions.
-<li>The code generator is able to generate debug info into output COFF files.
-<li>Support for placing an object into a specific section or at a specific
-    address in memory.</li>
+<li>...</li>
 </ul>
 
 <p>Things not yet supported:</p>
@@ -764,22 +534,9 @@
 
 <ul>
 
-<li>Preliminary support for processors, such as the Cortex-A8 and Cortex-A9,
-that implement version v7-A of the ARM architecture.  The ARM backend now
-supports both the Thumb2 and Advanced SIMD (Neon) instruction sets.</li>
-
-<li>The AAPCS-VFP "hard float" calling conventions are also supported with the
-<tt>-float-abi=hard</tt> flag.</li>
-
-<li>The ARM calling convention code is now tblgen generated instead of resorting
-    to C++ code.</li>
+<li>...</li>
 </ul>
 
-<p>These features are still somewhat experimental
-and subject to change. The Neon intrinsics, in particular, may change in future
-releases of LLVM.  ARMv7 support has progressed a lot on top of tree since 2.6
-branched.</p>
-
 
 </div>
 
@@ -793,11 +550,7 @@
 </p>
 
 <ul>
-<li>Mips now supports O32 Calling Convention.</li>
-<li>Many improvements to the 32-bit PowerPC SVR4 ABI (used on powerpc-linux)
-    support, lots of bugs fixed.</li>
-<li>Added support for the 64-bit PowerPC SVR4 ABI (used on powerpc64-linux).
-    Needs more testing.</li>
+<li>...</li>
 </ul>
 
 </div>
@@ -814,40 +567,7 @@
 </p>
 
 <ul>
-<li>New <a href="http://llvm.org/doxygen/PrettyStackTrace_8h-source.html">
-    <tt>PrettyStackTrace</tt> class</a> allows crashes of llvm tools (and applications
-    that integrate them) to provide more detailed indication of what the
-    compiler was doing at the time of the crash (e.g. running a pass).
-    At the top level for each LLVM tool, it includes the command line arguments.
-    </li>
-<li>New <a href="http://llvm.org/doxygen/StringRef_8h-source.html">StringRef</a>
-    and <a href="http://llvm.org/doxygen/Twine_8h-source.html">Twine</a> classes
-    make operations on character ranges and
-    string concatenation to be more efficient.  <tt>StringRef</tt> is just a <tt>const
-    char*</tt> with a length, <tt>Twine</tt> is a light-weight rope.</li>
-<li>LLVM has new <tt>WeakVH</tt>, <tt>AssertingVH</tt> and <tt>CallbackVH</tt>
-    classes, which make it easier to write LLVM IR transformations.  <tt>WeakVH</tt>
-    is automatically drops to null when the referenced <tt>Value</tt> is deleted,
-    and is updated across a <tt>replaceAllUsesWith</tt> operation.
-    <tt>AssertingVH</tt> aborts the program if the
-    referenced value is destroyed while it is being referenced.  <tt>CallbackVH</tt>
-    is a customizable class for handling value references.  See <a
-    href="http://llvm.org/doxygen/ValueHandle_8h-source.html">ValueHandle.h</a> 
-    for more information.</li>
-<li>The new '<a href="http://llvm.org/doxygen/Triple_8h-source.html">Triple
-    </a>' class centralizes a lot of logic that reasons about target
-    triples.</li>
-<li>The new '<a href="http://llvm.org/doxygen/ErrorHandling_8h-source.html">
-    llvm_report_error()</a>' set of APIs allows tools to embed the LLVM
-    optimizer and backend and recover from previously unrecoverable errors.</li>
-<li>LLVM has new abstractions for <a 
-    href="http://llvm.org/doxygen/Atomic_8h-source.html">atomic operations</a>
-    and <a href="http://llvm.org/doxygen/RWMutex_8h-source.html">reader/writer
-    locks</a>.</li>
-<li>LLVM has new <a href="http://llvm.org/doxygen/SourceMgr_8h-source.html">
-    <tt>SourceMgr</tt> and <tt>SMLoc</tt> classes</a> which implement caret
-    diagnostics and basic include stack processing for simple parsers. It is
-    used by tablegen, llvm-mc, the .ll parser and FileCheck.</li>
+<li>...</li>
 </ul>
 
 
@@ -862,32 +582,7 @@
 <p>Other miscellaneous features include:</p>
 
 <ul>
-<li>LLVM now includes a new internal '<a 
-    href="http://llvm.org/cmds/FileCheck.html">FileCheck</a>' tool which allows
-    writing much more accurate regression tests that run faster.  Please see the
-    <a href="TestingGuide.html#FileCheck">FileCheck section of the Testing
-    Guide</a> for more information.</li>
-<li>LLVM profile information support has been significantly improved to produce
-correct use counts, and has support for edge profiling with reduced runtime
-overhead.  Combined, the generated profile information is both more correct and
-imposes about half as much overhead (2.6. from 12% to 6% overhead on SPEC
-CPU2000).</li>
-<li>The C bindings (in the llvm/include/llvm-c directory) include many newly
-    supported APIs.</li>
-<li>LLVM 2.6 includes a brand new experimental LLVM bindings to the Ada2005
-    programming language.</li>
-
-<li>The LLVMC driver has several new features:
-  <ul>
-  <li>Dynamic plugins now work on Windows.</li>
-  <li>New option property: init. Makes possible to provide default values for
-      options defined in plugins (interface to <tt>cl::init</tt>).</li>
-  <li>New example: Skeleton, shows how to create a standalone LLVMC-based
-      driver.</li>
-  <li>New example: mcc16, a driver for the PIC16 toolchain.</li>
-  </ul>
-</li>
-
+<li>...</li>
 </ul>
 
 </div>
@@ -901,24 +596,11 @@
 <div class="doc_text">
 
 <p>If you're already an LLVM user or developer with out-of-tree changes based
-on LLVM 2.5, this section lists some "gotchas" that you may run into upgrading
+on LLVM 2.6, this section lists some "gotchas" that you may run into upgrading
 from the previous release.</p>
 
 <ul>
-<li>The Itanium (IA64) backend has been removed.  It was not actively supported
-    and had bitrotted.</li>
-<li>The BigBlock register allocator has been removed, it had also bitrotted.</li>
-<li>The C Backend (<tt>-march=c</tt>) is no longer considered part of the LLVM release
-criteria.  We still want it to work, but no one is maintaining it and it lacks
-support for arbitrary precision integers and other important IR features.</li>
-
-<li>All LLVM tools now default to overwriting their output file, behaving more
-    like standard unix tools.  Previously, this only happened with the '<tt>-f</tt>'
-    option.</li>
-<li>LLVM build now builds all libraries as .a files instead of some
-  libraries as relinked .o files.  This requires some APIs like
-  InitializeAllTargets.h.
-  </li>
+<li>...</li>
 </ul>
 
 
@@ -926,82 +608,7 @@
 API changes are:</p>
 
 <ul>
-<li>All uses of <tt>hash_set</tt> and <tt>hash_map</tt> have been removed from
-    the LLVM tree and the wrapper headers have been removed.</li>
-<li>The llvm/Streams.h and <tt>DOUT</tt> member of Debug.h have been removed.  The
-    <tt>llvm::Ostream</tt> class has been completely removed and replaced with
-    uses of <tt>raw_ostream</tt>.</li>
-<li>LLVM's global uniquing tables for <tt>Type</tt>s and <tt>Constant</tt>s have
-    been privatized into members of an <tt>LLVMContext</tt>.  A number of APIs
-    now take an <tt>LLVMContext</tt> as a parameter.  To smooth the transition
-    for clients that will only ever use a single context, the new 
-    <tt>getGlobalContext()</tt> API can be used to access a default global 
-    context which can be passed in any and all cases where a context is 
-    required.
-<li>The <tt>getABITypeSize</tt> methods are now called <tt>getAllocSize</tt>.</li>
-<li>The <tt>Add</tt>, <tt>Sub</tt> and <tt>Mul</tt> operators are no longer
-    overloaded for floating-point types. Floating-point addition, subtraction
-    and multiplication are now represented with new operators <tt>FAdd</tt>,
-    <tt>FSub</tt> and <tt>FMul</tt>. In the <tt>IRBuilder</tt> API,
-    <tt>CreateAdd</tt>, <tt>CreateSub</tt>, <tt>CreateMul</tt> and
-    <tt>CreateNeg</tt> should only be used for integer arithmetic now;
-    <tt>CreateFAdd</tt>, <tt>CreateFSub</tt>, <tt>CreateFMul</tt> and
-    <tt>CreateFNeg</tt> should now be used for floating-point arithmetic.</li>
-<li>The <tt>DynamicLibrary</tt> class can no longer be constructed, its functionality has
-    moved to static member functions.</li>
-<li><tt>raw_fd_ostream</tt>'s constructor for opening a given filename now
-    takes an extra <tt>Force</tt> argument. If <tt>Force</tt> is set to
-    <tt>false</tt>, an error will be reported if a file with the given name
-    already exists. If <tt>Force</tt> is set to <tt>true</tt>, the file will
-    be silently truncated (which is the behavior before this flag was
-    added).</li>
-<li><tt>SCEVHandle</tt> no longer exists, because reference counting is no
-    longer done for <tt>SCEV*</tt> objects, instead <tt>const SCEV*</tt>
-    should be used.</li>
-
-<li>Many APIs, notably <tt>llvm::Value</tt>, now use the <tt>StringRef</tt>
-and <tt>Twine</tt> classes instead of passing <tt>const char*</tt>
-or <tt>std::string</tt>, as described in
-the <a href="ProgrammersManual.html#string_apis">Programmer's Manual</a>. Most
-clients should be unaffected by this transition, unless they are used to
-<tt>Value::getName()</tt> returning a string. Here are some tips on updating to
-2.6:
-  <ul>
-    <li><tt>getNameStr()</tt> is still available, and matches the old
-      behavior. Replacing <tt>getName()</tt> calls with this is an safe option,
-      although more efficient alternatives are now possible.</li>
-
-    <li>If you were just relying on <tt>getName()</tt> being able to be sent to
-      a <tt>std::ostream</tt>, consider migrating
-      to <tt>llvm::raw_ostream</tt>.</li>
-      
-    <li>If you were using <tt>getName().c_str()</tt> to get a <tt>const
-        char*</tt> pointer to the name, you can use <tt>getName().data()</tt>.
-        Note that this string (as before), may not be the entire name if the
-        name contains embedded null characters.</li>
-
-    <li>If you were using <tt>operator +</tt> on the result of <tt>getName()</tt> and
-      treating the result as an <tt>std::string</tt>, you can either
-      use <tt>Twine::str</tt> to get the result as an <tt>std::string</tt>, or
-      could move to a <tt>Twine</tt> based design.</li>
-
-    <li><tt>isName()</tt> should be replaced with comparison
-      against <tt>getName()</tt> (this is now efficient).
-  </ul>
-</li>
-
-<li>The registration interfaces for backend Targets has changed (what was
-previously <tt>TargetMachineRegistry</tt>). For backend authors, see the <a
-href="WritingAnLLVMBackend.html#TargetRegistration">Writing An LLVM Backend</a>
-guide. For clients, the notable API changes are:
-  <ul>
-    <li><tt>TargetMachineRegistry</tt> has been renamed
-      to <tt>TargetRegistry</tt>.</li>
-
-    <li>Clients should move to using the <tt>TargetRegistry::lookupTarget()</tt>
-      function to find targets.</li>
-  </ul>
-</li>
+<li>...</li>
 </ul>
 
 </div>
@@ -1055,8 +662,8 @@
 <li>The llvm-gcc bootstrap will fail with some versions of binutils (e.g. 2.15)
     with a message of "<tt><a href="http://llvm.org/PR5004">Error: can not do 8
     byte pc-relative relocation</a></tt>" when building C++ code.  We intend to
-    fix this on mainline, but a workaround for 2.6 is to upgrade to binutils
-    2.17 or later.</li>
+    fix this on mainline, but a workaround is to upgrade to binutils 2.17 or
+    later.</li>
     
 <li>LLVM will not correctly compile on Solaris and/or OpenSolaris
 using the stock GCC 3.x.x series 'out the box',
