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
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;
}
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!");
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);