Merge the contents from exception-handling-rewrite to the mainline.
[oota-llvm.git] / docs / ReleaseNotes.html
index a5610dbea652f9faa1f8096a54b8c5ec4868124f..0b0377d87561e3cfd153a53666dc94f26884ed81 100644 (file)
@@ -599,9 +599,69 @@ from the previous release.</p>
   LLVM API changes are:</p>
 
 <ul>
-<!--
-<li></ld>
--->
+<li>The biggest and most pervasive change is that llvm::Type's are no longer
+    returned or accepted as 'const' values.  Instead, just pass around non-const
+    Type's.</li>
+  
+<li><code>PHINode::reserveOperandSpace</code> has been removed. Instead, you
+  must specify how many operands to reserve space for when you create the
+  PHINode, by passing an extra argument into <code>PHINode::Create</code>.</li>
+
+<li>PHINodes no longer store their incoming BasicBlocks as operands. Instead,
+  the list of incoming BasicBlocks is stored separately, and can be accessed
+  with new functions <code>PHINode::block_begin</code>
+  and <code>PHINode::block_end</code>.</li>
+
+<li>Various functions now take an <code>ArrayRef</code> instead of either a pair
+  of pointers (or iterators) to the beginning and end of a range, or a pointer
+  and a length. Others now return an <code>ArrayRef</code> instead of a
+  reference to a <code>SmallVector</code> or <code>std::vector</code>. These
+  include:
+<ul>
+<!-- Please keep this list sorted. -->
+<li><code>CallInst::Create</code></li>
+<li><code>ComputeLinearIndex</code> (in <code>llvm/CodeGen/Analysis.h</code>)</li>
+<li><code>ConstantArray::get</code></li>
+<li><code>ConstantExpr::getExtractElement</code></li>
+<li><code>ConstantExpr::getGetElementPtr</code></li>
+<li><code>ConstantExpr::getInBoundsGetElementPtr</code></li>
+<li><code>ConstantExpr::getIndices</code></li>
+<li><code>ConstantExpr::getInsertElement</code></li>
+<li><code>ConstantExpr::getWithOperands</code></li>
+<li><code>ConstantFoldCall</code> (in <code>llvm/Analysis/ConstantFolding.h</code>)</li>
+<li><code>ConstantFoldInstOperands</code> (in <code>llvm/Analysis/ConstantFolding.h</code>)</li>
+<li><code>ConstantVector::get</code></li>
+<li><code>DIBuilder::createComplexVariable</code></li>
+<li><code>DIBuilder::getOrCreateArray</code></li>
+<li><code>ExtractValueInst::Create</code></li>
+<li><code>ExtractValueInst::getIndexedType</code></li>
+<li><code>ExtractValueInst::getIndices</code></li>
+<li><code>FindInsertedValue</code> (in <code>llvm/Analysis/ValueTracking.h</code>)</li>
+<li><code>gep_type_begin</code> (in <code>llvm/Support/GetElementPtrTypeIterator.h</code>)</li>
+<li><code>gep_type_end</code> (in <code>llvm/Support/GetElementPtrTypeIterator.h</code>)</li>
+<li><code>GetElementPtrInst::Create</code></li>
+<li><code>GetElementPtrInst::CreateInBounds</code></li>
+<li><code>GetElementPtrInst::getIndexedType</code></li>
+<li><code>InsertValueInst::Create</code></li>
+<li><code>InsertValueInst::getIndices</code></li>
+<li><code>InvokeInst::Create</code></li>
+<li><code>IRBuilder::CreateCall</code></li>
+<li><code>IRBuilder::CreateExtractValue</code></li>
+<li><code>IRBuilder::CreateGEP</code></li>
+<li><code>IRBuilder::CreateInBoundsGEP</code></li>
+<li><code>IRBuilder::CreateInsertValue</code></li>
+<li><code>IRBuilder::CreateInvoke</code></li>
+<li><code>MDNode::get</code></li>
+<li><code>MDNode::getIfExists</code></li>
+<li><code>MDNode::getTemporary</code></li>
+<li><code>MDNode::getWhenValsUnresolved</code></li>
+<li><code>SimplifyGEPInst</code> (in <code>llvm/Analysis/InstructionSimplify.h</code>)</li>
+<li><code>TargetData::getIndexedOffset</code></li>
+</ul></li>
+
+<li>All forms of <code>StringMap::getOrCreateValue</code> have been remove
+  except for the one which takes a <code>StringRef</code>.</li>
+
 </ul>
 </div>