[llvm-commits] [llvm] r83702 - /llvm/trunk/include/llvm/Instructions.h

Chris Lattner sabre at nondot.org
Sat Oct 10 00:42:42 PDT 2009


Author: lattner
Date: Sat Oct 10 02:42:42 2009
New Revision: 83702

URL: http://llvm.org/viewvc/llvm-project?rev=83702&view=rev
Log:
add a version of PHINode::getIncomingBlock that takes a raw 
Use, to complement the version that takes a use_iterator.

Modified:
    llvm/trunk/include/llvm/Instructions.h

Modified: llvm/trunk/include/llvm/Instructions.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Instructions.h?rev=83702&r1=83701&r2=83702&view=diff

==============================================================================
--- llvm/trunk/include/llvm/Instructions.h (original)
+++ llvm/trunk/include/llvm/Instructions.h Sat Oct 10 02:42:42 2009
@@ -1910,19 +1910,29 @@
     return i/2;
   }
 
+  /// getIncomingBlock - Return incoming basic block #i.
+  ///
+  BasicBlock *getIncomingBlock(unsigned i) const {
+    return static_cast<BasicBlock*>(getOperand(i*2+1));
+  }
+  
   /// getIncomingBlock - Return incoming basic block corresponding
-  /// to value use iterator
+  /// to an operand of the PHI.
   ///
-  template <typename U>
-  BasicBlock *getIncomingBlock(value_use_iterator<U> I) const {
-    assert(this == *I && "Iterator doesn't point to PHI's Uses?");
-    return static_cast<BasicBlock*>((&I.getUse() + 1)->get());
+  BasicBlock *getIncomingBlock(const Use &U) const {
+    assert(this == U.getUser() && "Iterator doesn't point to PHI's Uses?");
+    return static_cast<BasicBlock*>((&U + 1)->get());
   }
-  /// getIncomingBlock - Return incoming basic block number x
+  
+  /// getIncomingBlock - Return incoming basic block corresponding
+  /// to value use iterator.
   ///
-  BasicBlock *getIncomingBlock(unsigned i) const {
-    return static_cast<BasicBlock*>(getOperand(i*2+1));
+  template <typename U>
+  BasicBlock *getIncomingBlock(value_use_iterator<U> I) const {
+    return getIncomingBlock(I.getUse());
   }
+  
+  
   void setIncomingBlock(unsigned i, BasicBlock *BB) {
     setOperand(i*2+1, BB);
   }





More information about the llvm-commits mailing list