Add accessor methods to binary/unary operators
authorChris Lattner <sabre@nondot.org>
Fri, 22 Jun 2001 02:21:42 +0000 (02:21 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 22 Jun 2001 02:21:42 +0000 (02:21 +0000)
Add extra helper methods to PHI class

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/InstrTypes.h
include/llvm/iOther.h

index 1bd7a246d0aac8aa085c8338eb48ca6ef7b0507c..23d60198660af5fe6c309bd3517c5ed9f444d596 100644 (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!");
index 118241fdc281a846c72454b44d8500858b29adda..1d6b9a9968e1c01490a94655e180fa0944865b91 100644 (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);