mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-05 02:07:16 +00:00
add GetElementPtrInst::hasAllZeroIndices, a long-overdue helper method.
Writing it twice in the same day was too much for me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35978 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
0468ab3025
commit
6f771d4351
@ -408,6 +408,11 @@ public:
|
||||
inline bool hasIndices() const {
|
||||
return getNumOperands() > 1;
|
||||
}
|
||||
|
||||
/// hasAllZeroIndices - Return true if all of the indices of this GEP are
|
||||
/// zeros. If so, the result pointer and the first operand have the same
|
||||
/// value, just potentially different types.
|
||||
bool hasAllZeroIndices() const;
|
||||
|
||||
// Methods for support type inquiry through isa, cast, and dyn_cast:
|
||||
static inline bool classof(const GetElementPtrInst *) { return true; }
|
||||
|
@ -966,6 +966,22 @@ const Type* GetElementPtrInst::getIndexedType(const Type *Ptr, Value *Idx) {
|
||||
return PTy->getElementType();
|
||||
}
|
||||
|
||||
|
||||
/// hasAllZeroIndices - Return true if all of the indices of this GEP are
|
||||
/// zeros. If so, the result pointer and the first operand have the same
|
||||
/// value, just potentially different types.
|
||||
bool GetElementPtrInst::hasAllZeroIndices() const {
|
||||
for (unsigned i = 1, e = getNumOperands(); i != e; ++i) {
|
||||
if (ConstantInt *CI = dyn_cast<ConstantInt>(getOperand(i))) {
|
||||
if (!CI->isZero()) return false;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// ExtractElementInst Implementation
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
Loading…
Reference in New Issue
Block a user