Add mention of ARM atomic builtin support
[oota-llvm.git] / docs / ReleaseNotes.html
index 9e113cadbf9b05f88f92e9ff86832915c484e4f0..14b2f6e5c2173f1786aa87d10a95b98818fb1524 100644 (file)
@@ -120,14 +120,15 @@ development.  Here we include updates on these subprojects.
 <p>In the LLVM 2.7 time-frame, the Clang team has made many improvements:</p>
 
 <ul>
-<li>FIXME: C++! Include a link to cxx_compatibility.html</li>
+<li>FIXME: C++! Include a link to cxx_compatibility.html  Clang 2.7 can
+bootstrap???</li>
 
 <li>CIndex API and Python bindings: Clang now includes a C API as part of the
 CIndex library. Although we make make some changes to the API in the future, it
 is intended to be stable and has been designed for use by external projects. See
 the Clang
 doxygen <a href="http://clang.llvm.org/doxygen/group__CINDEX.html">CIndex</a>
-documentation for more details. The CIndex API also includings an preliminary
+documentation for more details. The CIndex API also includes a preliminary
 set of Python bindings.</li>
 
 <li>ARM Support: Clang now has ABI support for both the Darwin and Linux ARM
@@ -381,7 +382,41 @@ statically.
 </p>
 </div>
 
+<!--=========================================================================-->
+<div class="doc_subsection">
+<a name="icedtea">IcedTea Java Virtual Machine Implementation</a>
+</div>
+
+<div class="doc_text">
+<p>
+<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>Icedtea6 1.8 and later have been tested and are known to work with
+LLVM 2.7 (and continue to work with older LLVM releases >= 2.6 as well).
+</p>
+</div>
+
+<!--=========================================================================-->
+<div class="doc_subsection">
+<a name="llvm-lua">LLVM-Lua</a>
+</div>
 
+<div class="doc_text">
+<p>
+<a href="http://code.google.com/p/llvm-lua/">LLVM-Lua</a> uses LLVM
+ to add JIT and static compiling support to the Lua VM. Lua 
+bytecode is analyzed to remove type checks, then LLVM is used to compile the 
+bytecode down to machine code.
+</p>
+<p>LLVM-Lua 1.2.0  have been tested and is known to work with LLVM 2.7.
+</p>
+</div>
 <!-- *********************************************************************** -->
 <div class="doc_section">
   <a name="whatsnew">What's New in LLVM 2.7?</a>
@@ -702,11 +737,18 @@ href="http://blog.llvm.org/2010/04/arm-advanced-simd-neon-intrinsics-and.html">
   helpful information if migrating code from GCC to LLVM-GCC.</li>
   
 <li>The ARM and Thumb code generators now use register scavenging for stack
-    object address materialization.(FIXME: WHAT BENEFIT DOES THIS PROVIDE?)</li>
-    
+    object address materialization. This allows the use of R3 as a general
+    purpose register in Thumb1 code, as it was previous reserved for use in
+    stack address materialization. Secondly, sequential uses of the same
+    value will now re-use the materialized constant.</li>
+
 <li>The ARM backend now has good support for ARMv4 targets and has been tested
     on StrongARM hardware.  Previously, LLVM only supported ARMv4T and
     newer chips.</li>
+
+<li>Atomic builtins are now supported for ARMv6 and ARMv7 (__sync_synchronize,
+    __sync_fetch_and_add, etc.).</li>
+
 </ul>
 
 
@@ -725,8 +767,8 @@ href="http://blog.llvm.org/2010/04/arm-advanced-simd-neon-intrinsics-and.html">
 
 <ul>
 <li>The optimizer uses the new CodeMetrics class to measure the size of code.
-    Various passes that use thing (like the inliner, loop unswitcher, etc) all
-    use this to make more accurate estimates of the code size impact of various
+    Various passes (like the inliner, loop unswitcher, etc) all use this to make
+    more accurate estimates of the code size impact of various
     optimizations.</li>
 <li>A new <a href="http://llvm.org/doxygen/InstructionSimplify_8h-source.html">
     llvm/Analysis/InstructionSimplify.h</a> interface is available for doing
@@ -832,6 +874,7 @@ API changes are:</p>
  instead.</li>
 <li>The Streams.h file and "DOUT" got removed, use "DEBUG(errs() &lt;&lt; ...);"
    instead.</li>
+<li>The TargetAsmInfo interface was renamed to MCAsmInfo.</li>
 <li><tt>ModuleProvider</tt> has been <a
 href="http://llvm.org/viewvc/llvm-project?view=rev&amp;revision=94686">removed</a>
 and its methods moved to <tt>Module</tt> and <tt>GlobalValue</tt>.
@@ -851,13 +894,24 @@ Clients must replace calls to
 <tt>GlobalValue::hasNotBeenReadFromBitcode</tt> with
 <tt>GlobalValue::isMaterializable</tt>.</li>
 
-<li>The <tt>llvm/Support/DataTypes.h</tt> header has moved
-to <tt>llvm/System/DataTypes.h</tt>.</li>
-
 <li>The <tt>isInteger</tt>, <tt>isIntOrIntVector</tt>, <tt>isFloatingPoint</tt>,
 <tt>isFPOrFPVector</tt> and <tt>isFPOrFPVector</tt> methods have been renamed
 <tt>isIntegerTy</tt>, <tt>isIntOrIntVectorTy</tt>, <tt>isFloatingPointTy</tt>, 
 <tt>isFPOrFPVectorTy</tt> and <tt>isFPOrFPVectorTy</tt> respectively.</li>
+
+<li><tt>llvm::Instruction::clone()</tt> no longer takes argument.</li>
+<li><tt>raw_fd_ostream</tt>'s constructor now takes a flag argument, not individual
+  booleans (see <tt>include/llvm/Support/raw_ostream.h</tt> for details).</li>
+<li>Some header files have been renamed:
+<ul>
+  <li><tt>llvm/Support/AIXDataTypesFix.h</tt> to
+      <tt>llvm/System/AIXDataTypesFix.h</tt></li>
+  <li><tt>llvm/Support/DataTypes.h</tt> to <tt>llvm/System/DataTypes.h</tt></li>
+  <li><tt>llvm/Transforms/Utils/InlineCost.h</tt> to
+      <tt>llvm/Analysis/InlineCost.h</tt></li>
+  <li><tt>llvm/Support/Mangler.h</tt> to <tt>llvm/Target/Mangler.h</tt></li>
+  <li><tt>llvm/Analysis/Passes.h</tt> to <tt>llvm/CodeGen/Passes.h</tt></li>
+</ul></li>
 </ul>
 
 </div>