Add simpler to use ctors. Add getType() overload to specialize getelementptr's type
authorChris Lattner <sabre@nondot.org>
Thu, 1 Nov 2001 05:54:28 +0000 (05:54 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 1 Nov 2001 05:54:28 +0000 (05:54 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1077 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/iMemory.h

index 5ce03ef73656e2a37ee3d5d5a49bd38552617d23..4e50f30bebc00823b284d66dbd9b357121406153 100644 (file)
@@ -183,6 +183,8 @@ public:
                                    bool AllowStructLeaf = false);
   
   const vector<ConstPoolVal*>& getIndexVec() const { return indexVec; }
+
+  inline bool hasIndices() const { return !indexVec.empty(); }
   
   virtual Value* getPtrOperand() = 0;
   
@@ -203,6 +205,8 @@ class LoadInst : public MemAccessInst {
 public:
   LoadInst(Value *Ptr, const vector<ConstPoolVal*> &Idx,
           const string &Name = "");
+  LoadInst(Value *Ptr, const string &Name = "");
+
   virtual Instruction* clone() const { return new LoadInst(*this); }
   virtual const char*  getOpcodeName() const { return "load"; }  
   virtual Value*       getPtrOperand() { return this->getOperand(0); }
@@ -232,7 +236,9 @@ class StoreInst : public MemAccessInst {
 public:
   StoreInst(Value *Val, Value *Ptr, const vector<ConstPoolVal*> &Idx,
            const string &Name = "");
+  StoreInst(Value *Val, Value *Ptr, const string &Name = "");
   virtual Instruction *clone() const { return new StoreInst(*this); }
+
   virtual const char *getOpcodeName() const { return "store"; }  
   
   virtual bool hasSideEffects() const { return true; }
@@ -272,6 +278,10 @@ public:
   inline bool isArraySelector() const { return !isStructSelector(); }
   bool isStructSelector() const;
 
+  // getType - Overload to return most specific pointer type...
+  inline const PointerType *getType() const {
+    return cast<const PointerType>(Instruction::getType());
+  }
 
   // Methods for support type inquiry through isa, cast, and dyn_cast:
   static inline bool classof(const GetElementPtrInst *) { return true; }