Add some useful accessors

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1069 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2001-11-01 02:39:36 +00:00
parent dbe0514e12
commit b86751715c
2 changed files with 20 additions and 0 deletions

View File

@ -41,11 +41,29 @@ public:
}
}
// isArrayAllocation - Return true if there is an allocation size parameter
// to the allocation instruction.
//
inline bool isArrayAllocation() const { return Operands.size() == 1; }
inline const Value *getArraySize() const {
assert(isArrayAllocation()); return Operands[0];
}
inline Value *getArraySize() {
assert(isArrayAllocation()); return Operands[0];
}
// getType - Overload to return most specific pointer type...
inline const PointerType *getType() const {
return (const PointerType*)Instruction::getType();
}
// getAllocatedType - Return the type that is being allocated by the
// instruction.
inline const Type *getAllocatedType() const {
return getType()->getValueType();
}
virtual Instruction *clone() const = 0;
};

View File

@ -188,6 +188,8 @@ public:
Operands.push_back(Use(SA, this));
}
OtherOps getOpcode() const { return (OtherOps)Instruction::getOpcode(); }
virtual Instruction *clone() const { return new ShiftInst(*this); }
virtual const char *getOpcodeName() const {
return getOpcode() == Shl ? "shl" : "shr";