Add simpler to use ctors. Add getType() overload to specialize getelementptr's type
llvm-svn: 1077
This commit is contained in:
parent
3e8ef98515
commit
3003edc9f1
|
@ -183,6 +183,8 @@ public:
|
||||||
bool AllowStructLeaf = false);
|
bool AllowStructLeaf = false);
|
||||||
|
|
||||||
const vector<ConstPoolVal*>& getIndexVec() const { return indexVec; }
|
const vector<ConstPoolVal*>& getIndexVec() const { return indexVec; }
|
||||||
|
|
||||||
|
inline bool hasIndices() const { return !indexVec.empty(); }
|
||||||
|
|
||||||
virtual Value* getPtrOperand() = 0;
|
virtual Value* getPtrOperand() = 0;
|
||||||
|
|
||||||
|
@ -203,6 +205,8 @@ class LoadInst : public MemAccessInst {
|
||||||
public:
|
public:
|
||||||
LoadInst(Value *Ptr, const vector<ConstPoolVal*> &Idx,
|
LoadInst(Value *Ptr, const vector<ConstPoolVal*> &Idx,
|
||||||
const string &Name = "");
|
const string &Name = "");
|
||||||
|
LoadInst(Value *Ptr, const string &Name = "");
|
||||||
|
|
||||||
virtual Instruction* clone() const { return new LoadInst(*this); }
|
virtual Instruction* clone() const { return new LoadInst(*this); }
|
||||||
virtual const char* getOpcodeName() const { return "load"; }
|
virtual const char* getOpcodeName() const { return "load"; }
|
||||||
virtual Value* getPtrOperand() { return this->getOperand(0); }
|
virtual Value* getPtrOperand() { return this->getOperand(0); }
|
||||||
|
@ -232,7 +236,9 @@ class StoreInst : public MemAccessInst {
|
||||||
public:
|
public:
|
||||||
StoreInst(Value *Val, Value *Ptr, const vector<ConstPoolVal*> &Idx,
|
StoreInst(Value *Val, Value *Ptr, const vector<ConstPoolVal*> &Idx,
|
||||||
const string &Name = "");
|
const string &Name = "");
|
||||||
|
StoreInst(Value *Val, Value *Ptr, const string &Name = "");
|
||||||
virtual Instruction *clone() const { return new StoreInst(*this); }
|
virtual Instruction *clone() const { return new StoreInst(*this); }
|
||||||
|
|
||||||
virtual const char *getOpcodeName() const { return "store"; }
|
virtual const char *getOpcodeName() const { return "store"; }
|
||||||
|
|
||||||
virtual bool hasSideEffects() const { return true; }
|
virtual bool hasSideEffects() const { return true; }
|
||||||
|
@ -272,6 +278,10 @@ public:
|
||||||
inline bool isArraySelector() const { return !isStructSelector(); }
|
inline bool isArraySelector() const { return !isStructSelector(); }
|
||||||
bool isStructSelector() const;
|
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:
|
// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||||
static inline bool classof(const GetElementPtrInst *) { return true; }
|
static inline bool classof(const GetElementPtrInst *) { return true; }
|
||||||
|
|
Loading…
Reference in New Issue