aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm')
-rw-r--r--include/llvm/Instructions.h26
1 files changed, 18 insertions, 8 deletions
diff --git a/include/llvm/Instructions.h b/include/llvm/Instructions.h
index c71d64a..4ba7c08 100644
--- a/include/llvm/Instructions.h
+++ b/include/llvm/Instructions.h
@@ -1910,19 +1910,29 @@ public:
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);
}