[llvm-commits] [llvm] r115427 - /llvm/trunk/docs/ReleaseNotes.html

Chris Lattner sabre at nondot.org
Sat Oct 2 15:44:15 PDT 2010


Author: lattner
Date: Sat Oct  2 17:44:15 2010
New Revision: 115427

URL: http://llvm.org/viewvc/llvm-project?rev=115427&view=rev
Log:
random updates

Modified:
    llvm/trunk/docs/ReleaseNotes.html

Modified: llvm/trunk/docs/ReleaseNotes.html
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/ReleaseNotes.html?rev=115427&r1=115426&r2=115427&view=diff
==============================================================================
--- llvm/trunk/docs/ReleaseNotes.html (original)
+++ llvm/trunk/docs/ReleaseNotes.html Sat Oct  2 17:44:15 2010
@@ -453,6 +453,7 @@
 
 <ul>
 <li>llvm-diff</li>
+<li>Direct .o file writing support for darwin/x86[64].</li>
 </ul>
 
 </div>
@@ -474,56 +475,6 @@
   New linker_private_weak and linker_private_weak_def_auto linkage types
   Triples are now stored in normalized form.  Triple::normalize.
 
-
-<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, resort to <tt>CallSite</tt> 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<> (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.* (and possibly other?) intrinsics
-  take an extra parameter now (i1 isVolatile), totaling 5 parameters.
-  If you were creating these intrinsic calls and prototypes yourself (as opposed
-  to using Intrinsic::getDeclaration), you can use UpgradeIntrinsicFunction/UpgradeIntrinsicCall
-  to be portable accross releases.
-  Note that you cannot use Intrinsic::getDeclaration() in a backwards compatible
-  way (needs 2/3 types now, in 2.7 it needed just 1).
-</li>
-<li>
-  SetCurrentDebugLocation takes a DebugLoc now instead of a MDNode.
-  Change your code to use
-  SetCurrentDebugLocation(DebugLoc::getFromDILocation(...)).
-</li>
-<li>
-  VISIBILITY_HIDDEN is gone.
-</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>
-  SMDiagnostic takes different parameters now. //FIXME: how to upgrade?
-</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>
-  Some APIs got renamed:
-  <ul>
-      <li>llvm_report_error -> report_fatal_error</li>
-      <li>llvm_install_error_handler -> install_fatal_error_handler</li>
-      <li>llvm::DwarfExceptionHandling -> llvm::JITExceptionHandling</li>
-  </ul>
-</li>
 </ul>
 
 </div>
@@ -718,50 +669,54 @@
   ARM: Half float support through intrinsics LangRef.html#int_fp16
 <li>ARMGlobalMerge: <!-- Anton --> </li>
 
-<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 accumlation) 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>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 accumlation) 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>
-
 </ul>
 </div>
 
@@ -811,7 +766,6 @@
 
 
   renamed "Release" -> "Release+Asserts"; "Release-Asserts" -> "Release etc.
-  RegisterPass<> -> INTIALIZE_PASS()
 
 
 <ul>
@@ -826,6 +780,61 @@
 <p>In addition, many APIs have changed in this release.  Some of the major LLVM
 API changes are:</p>
 <ul>
+
+  RegisterPass<> -> INTIALIZE_PASS()
+
+
+
+<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, resort to <tt>CallSite</tt> 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<> (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.* (and possibly other?) intrinsics
+  take an extra parameter now (i1 isVolatile), totaling 5 parameters.
+  If you were creating these intrinsic calls and prototypes yourself (as opposed
+  to using Intrinsic::getDeclaration), you can use UpgradeIntrinsicFunction/UpgradeIntrinsicCall
+  to be portable accross releases.
+  Note that you cannot use Intrinsic::getDeclaration() in a backwards compatible
+  way (needs 2/3 types now, in 2.7 it needed just 1).
+</li>
+<li>
+  SetCurrentDebugLocation takes a DebugLoc now instead of a MDNode.
+  Change your code to use
+  SetCurrentDebugLocation(DebugLoc::getFromDILocation(...)).
+</li>
+<li>
+  VISIBILITY_HIDDEN is gone.
+</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>
+  SMDiagnostic takes different parameters now. //FIXME: how to upgrade?
+</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>
+  Some APIs got renamed:
+  <ul>
+      <li>llvm_report_error -> report_fatal_error</li>
+      <li>llvm_install_error_handler -> install_fatal_error_handler</li>
+      <li>llvm::DwarfExceptionHandling -> llvm::JITExceptionHandling</li>
+  </ul>
+</li>
+
 </ul>
 
 </div>





More information about the llvm-commits mailing list