Remove the Blackfin backend.
[oota-llvm.git] / docs / ReleaseNotes.html
index 6188ffd4c88f1119dcc6e9f68f6bfb2b7ca01320..ce5804b900d6f3b80e024d9cf3f7d01658a109d4 100644 (file)
@@ -103,6 +103,21 @@ production-quality compiler for C, Objective-C, C++ and Objective-C++ on x86
 (32- and 64-bit), and for darwin/arm targets.</p>
 
 <p>In the LLVM 3.0 time-frame, the Clang team has made many improvements:</p>
+
+<ul>
+  <li>Greatly improved support for building C++ applications, with greater stability and better diagnostics.</li>
+  
+  <li><a href="http://clang.llvm.org/cxx_status.html">Improved support</a> for the <a href="http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=50372 ">C++ 2011</a> standard, including implementations of non-static data member initializers, alias templates, delegating constructors, the range-based for loop, and implicitly-generated move constructors and move assignment operators, among others.</li>
+
+  <li>Implemented support for some features of the upcoming C1x standard, including static assertions and generic selections.</li>
+  
+  <li>Better detection of include and linking paths for system headers and libraries, especially for Linux distributions.</li>
+
+  <li>Implemented support for <a href="http://clang.llvm.org/docs/AutomaticReferenceCounting.html">Automatic Reference Counting</a> for Objective-C.</li>
+
+  <li>Implemented a number of optimizations in <tt>libclang</tt>, the Clang C interface, to improve the performance of code completion and the mapping from source locations to abstract syntax tree nodes.</li>
+</ul>
+
   
 <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
@@ -581,8 +596,12 @@ it run faster:</p>
    from the previous release.</p>
 
 <ul>
+  <li>The <code>LLVMC</code> front end code was removed while separating
+      out language independence.</li>
   <li>The <code>LowerSetJmp</code> pass wasn't used effectively by any
       target and has been removed.</li>
+  <li>The old <code>TailDup</code> pass was not used in the standard pipeline
+      and was unable to update ssa form, so it has been removed.
   <li>The syntax of volatile loads and stores in IR has been changed to
       "<code>load volatile</code>"/"<code>store volatile</code>".  The old
       syntax ("<code>volatile load</code>"/"<code>volatile store</code>")
@@ -685,6 +704,28 @@ it run faster:</p>
     information in the LLVM IR now expects clients to use <code>DIBuilder::finalize()</code>
     at the end of translation unit to complete debugging information encoding.</li>
 
+<li>The way the type system works has been rewritten: <code>PATypeHolder</code>
+and <code>OpaqueType</code> are gone, and all APIs deal with <code>Type*</code>
+instead of <code>const Type*</code>.
+If you need to create recursive structures, then create a named structure,
+and use <code>setBody()</code> when all its elements are built.
+Type merging and refining is gone too: named structures are not
+merged with other structures, even if their layout is identical.
+(of course anonymous structures are still uniqued by layout).
+</li>
+
+<li>TargetSelect.h moved to Support/ from Target/</li>
+
+<li>UpgradeIntrinsicCall no longer upgrades pre-2.9 intrinsic calls
+(for example <code>llvm.memset.i32</code>).</li>
+
+<li>It is mandatory to initialize all out-of-tree passes too and their dependencies now with
+<code>INITIALIZE_PASS{BEGIN,END,}</code> and <code>INITIALIZE_{PASS,AG}_DEPENDENCY</code>.</li>
+
+<li>The interface for MemDepResult in MemoryDependenceAnalysis has been enhanced
+    with new return types Unknown and NonFuncLocal, in addition to the existing
+    types Clobber, Def, and NonLocal.</li>
+
 </ul>
 </div>
 
@@ -718,7 +759,7 @@ components, please contact us on the <a
 href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVMdev list</a>.</p>
 
 <ul>
-<li>The Alpha, Blackfin, CellSPU, MicroBlaze, MSP430, MIPS, PTX, SystemZ
+<li>The Alpha, CellSPU, MicroBlaze, MSP430, MIPS, PTX,
     and XCore backends are experimental.</li>
 <li><tt>llc</tt> "<tt>-filetype=obj</tt>" is experimental on all targets
     other than darwin and ELF X86 systems.</li>