Add a helper function to PHI node
authorChris Lattner <sabre@nondot.org>
Sat, 3 Nov 2001 21:08:00 +0000 (21:08 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 3 Nov 2001 21:08:00 +0000 (21:08 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1113 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/iOther.h

index a566566377adcb645984ab4eed1b2e1fee789d20..cba41964d7a1c5dce4c05d98398d3f1d70eb9c66 100644 (file)
@@ -48,6 +48,9 @@ public:
   inline BasicBlock *getIncomingBlock(unsigned i) { 
     return cast<BasicBlock>(Operands[i*2+1]);
   }
+  inline void setIncomingBlock(unsigned i, BasicBlock *BB) {
+    Operands[i*2+1] = BB;
+  }
 
   // addIncoming - Add an incoming value to the end of the PHI list
   void addIncoming(Value *D, BasicBlock *BB);
@@ -56,6 +59,14 @@ public:
   // predecessor basic block is deleted.  The value removed is returned.
   Value *removeIncomingValue(const BasicBlock *BB);
 
+  // getBasicBlockIndex - Return the first index of the specified basic 
+  // block in the value list for this PHI.  Returns -1 if no instance.
+  //
+  int getBasicBlockIndex(const BasicBlock *BB) const {
+    for (unsigned i = 0; i < Operands.size()/2; ++i) 
+      if (getIncomingBlock(i) == BB) return i;
+    return -1;
+  }
 
   // Methods for support type inquiry through isa, cast, and dyn_cast:
   static inline bool classof(const PHINode *) { return true; }