summaryrefslogtreecommitdiff
path: root/docs/ReleaseNotes.html
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-10-04 01:29:06 +0000
committerChris Lattner <sabre@nondot.org>2010-10-04 01:29:06 +0000
commitbb11771eb6ffaf6867486f47719c3d52c4a0d63e (patch)
tree605f2b3ebfeab548d30a39be3fa1172dcd2a7158 /docs/ReleaseNotes.html
parent7554771d504f6f8f52a1e567fbe17f0c0d7857fd (diff)
downloadllvm-bb11771eb6ffaf6867486f47719c3d52c4a0d63e.tar.gz
llvm-bb11771eb6ffaf6867486f47719c3d52c4a0d63e.tar.bz2
llvm-bb11771eb6ffaf6867486f47719c3d52c4a0d63e.tar.xz
write Major Changes and Removed Features.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@115486 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/ReleaseNotes.html')
-rw-r--r--docs/ReleaseNotes.html73
1 files changed, 37 insertions, 36 deletions
diff --git a/docs/ReleaseNotes.html b/docs/ReleaseNotes.html
index 6f9d57424b..9b1c5788ca 100644
--- a/docs/ReleaseNotes.html
+++ b/docs/ReleaseNotes.html
@@ -886,46 +886,49 @@ it run faster:</p>
on LLVM 2.7, this section lists some "gotchas" that you may run into upgrading
from the previous release.</p>
-
- renamed "Release" -> "Release+Asserts"; "Release-Asserts" -> "Release etc.
-
-
<ul>
-<li>.ll file doesn't produce #uses comments anymore, to get them, run a .bc file
- through "llvm-dis --show-annotations".</li>
-<li>MSIL Backend removed.</li>
-<li>ABCD and SSI passes removed.</li>
-<li>'Union' LLVM IR feature removed.</li>
-<li>SCCVN pass removed.</li>
+<li>The build configuration machinery changed the output directory names. It
+ wasn't clear to many people that "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>
</ul>
+
+
<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>.
+ 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<> (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.
+ 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.* (and possibly other?) intrinsics
- take an extra parameter now (i1 isVolatile), totaling 5 parameters.
+ 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 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).
+ to using Intrinsic::getDeclaration), you can use
+ UpgradeIntrinsicFunction/UpgradeIntrinsicCall to be portable accross releases.
</li>
<li>
SetCurrentDebugLocation takes a DebugLoc now instead of a MDNode.
@@ -933,27 +936,25 @@ API changes are:</p>
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>
+
<li>
Some APIs got 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>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>
@@ -992,8 +993,8 @@ components, please contact us on the <a
href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">LLVMdev list</a>.</p>
<ul>
-<li>The Alpha, SPU, MIPS, PIC16, Blackfin, MSP430, SystemZ and MicroBlaze
- backends are experimental.</li>
+<li>The Alpha, Blackfin, CellSPU, MicroBlaze, MSP430, MIPS, PIC16, 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>
</ul>