Add accessor methods to binary/unary operators

Add extra helper methods to PHI class

llvm-svn: 54
This commit is contained in:
Chris Lattner 2001-06-22 02:21:42 +00:00
parent 86182934b5
commit f0a36e647a
2 changed files with 18 additions and 0 deletions

View File

@ -35,6 +35,9 @@ public:
virtual bool setOperand(unsigned i, Value *Val) = 0;
virtual const Value *getOperand(unsigned i) const = 0;
inline Value *getOperand(unsigned i) {
return (Value*)((const Instruction *)this)->getOperand(i);
}
// Additionally, they must provide a method to get at the successors of this
// terminator instruction. If 'idx' is out of range, a null pointer shall be
@ -78,6 +81,9 @@ public:
virtual string getOpcode() const = 0;
virtual unsigned getNumOperands() const { return 1; }
inline Value *getOperand(unsigned i) {
return (i == 0) ? Source : 0;
}
virtual const Value *getOperand(unsigned i) const {
return (i == 0) ? Source : 0;
}
@ -126,6 +132,9 @@ public:
virtual const Value *getOperand(unsigned i) const {
return (i == 0) ? Source1 : ((i == 1) ? Source2 : 0);
}
inline Value *getOperand(unsigned i) {
return (i == 0) ? Source1 : ((i == 1) ? Source2 : 0);
}
virtual bool setOperand(unsigned i, Value *Val) {
// assert(Val && "operand must not be null!");

View File

@ -46,6 +46,15 @@ public:
virtual bool setOperand(unsigned i, Value *Val);
virtual string getOpcode() const { return "phi"; }
// getNumIncomingValues - Return the number of incoming edges the PHI node has
inline unsigned getNumIncomingValues() const { return IncomingValues.size(); }
// getIncomingValue - Return incoming value #x
inline Value *getIncomingValue(unsigned i) const { return IncomingValues[i].first; }
// getIncomingBlock - Return incoming basic block #x
inline BasicBlock *getIncomingBlock(unsigned i) const { return IncomingValues[i].second; }
// addIncoming - Add an incoming value to the end of the PHI list
void addIncoming(Value *D, BasicBlock *BB);