Add new getIncomingValueForBlock method

Relax a bit about constness


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5709 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2003-03-06 16:36:28 +00:00
parent 0d75d8d73e
commit 566f0ee4ed

View File

@ -33,13 +33,12 @@ public:
unsigned getNumIncomingValues() const { return Operands.size()/2; } unsigned getNumIncomingValues() const { return Operands.size()/2; }
/// getIncomingValue - Return incoming value #x /// getIncomingValue - Return incoming value #x
const Value *getIncomingValue(unsigned i) const { Value *getIncomingValue(unsigned i) const {
return Operands[i*2]; assert(i*2 < Operands.size() && "Invalid value number!");
}
Value *getIncomingValue(unsigned i) {
return Operands[i*2]; return Operands[i*2];
} }
void setIncomingValue(unsigned i, Value *V) { void setIncomingValue(unsigned i, Value *V) {
assert(i*2 < Operands.size() && "Invalid value number!");
Operands[i*2] = V; Operands[i*2] = V;
} }
inline unsigned getOperandNumForIncomingValue(unsigned i) { inline unsigned getOperandNumForIncomingValue(unsigned i) {
@ -47,16 +46,15 @@ public:
} }
/// getIncomingBlock - Return incoming basic block #x /// getIncomingBlock - Return incoming basic block #x
const BasicBlock *getIncomingBlock(unsigned i) const { BasicBlock *getIncomingBlock(unsigned i) const {
return (const BasicBlock*)Operands[i*2+1].get(); assert(i*2+1 < Operands.size() && "Invalid value number!");
}
inline BasicBlock *getIncomingBlock(unsigned i) {
return (BasicBlock*)Operands[i*2+1].get(); return (BasicBlock*)Operands[i*2+1].get();
} }
inline void setIncomingBlock(unsigned i, BasicBlock *BB) { void setIncomingBlock(unsigned i, BasicBlock *BB) {
assert(i*2+1 < Operands.size() && "Invalid value number!");
Operands[i*2+1] = (Value*)BB; Operands[i*2+1] = (Value*)BB;
} }
inline unsigned getOperandNumForIncomingBlock(unsigned i) { unsigned getOperandNumForIncomingBlock(unsigned i) {
return i*2+1; return i*2+1;
} }
@ -93,6 +91,10 @@ public:
return -1; return -1;
} }
Value *getIncomingValueForBlock(const BasicBlock *BB) const {
return getIncomingValue(getBasicBlockIndex(BB));
}
/// Methods for support type inquiry through isa, cast, and dyn_cast: /// Methods for support type inquiry through isa, cast, and dyn_cast:
static inline bool classof(const PHINode *) { return true; } static inline bool classof(const PHINode *) { return true; }
static inline bool classof(const Instruction *I) { static inline bool classof(const Instruction *I) {