forked from OSchip/llvm-project
eliminate use of TargetData::getIndexedOffset that takes a vector
llvm-svn: 34163
This commit is contained in:
parent
b402e74fcd
commit
c44bd78a2e
|
@ -436,7 +436,9 @@ BasicAliasAnalysis::alias(const Value *V1, unsigned V1Size,
|
|||
GEPOperands[i] =
|
||||
Constant::getNullValue(GEPOperands[i]->getType());
|
||||
int64_t Offset =
|
||||
getTargetData().getIndexedOffset(BasePtr->getType(), GEPOperands);
|
||||
getTargetData().getIndexedOffset(BasePtr->getType(),
|
||||
&GEPOperands[0],
|
||||
GEPOperands.size());
|
||||
|
||||
if (Offset >= (int64_t)V2Size || Offset <= -(int64_t)V1Size)
|
||||
return NoAlias;
|
||||
|
@ -617,11 +619,13 @@ BasicAliasAnalysis::CheckGEPInstructions(
|
|||
// Okay, now get the offset. This is the relative offset for the full
|
||||
// instruction.
|
||||
const TargetData &TD = getTargetData();
|
||||
int64_t Offset1 = TD.getIndexedOffset(GEPPointerTy, GEP1Ops);
|
||||
int64_t Offset1 = TD.getIndexedOffset(GEPPointerTy, &GEP1Ops[0],
|
||||
GEP1Ops.size());
|
||||
|
||||
// Now crop off any constants from the end...
|
||||
GEP1Ops.resize(MinOperands);
|
||||
int64_t Offset2 = TD.getIndexedOffset(GEPPointerTy, GEP1Ops);
|
||||
int64_t Offset2 = TD.getIndexedOffset(GEPPointerTy, &GEP1Ops[0],
|
||||
GEP1Ops.size());
|
||||
|
||||
// If the tail provided a bit enough offset, return noalias!
|
||||
if ((uint64_t)(Offset2-Offset1) >= SizeMax)
|
||||
|
@ -731,8 +735,10 @@ BasicAliasAnalysis::CheckGEPInstructions(
|
|||
}
|
||||
|
||||
if (GEPPointerTy->getElementType()->isSized()) {
|
||||
int64_t Offset1 = getTargetData().getIndexedOffset(GEPPointerTy, GEP1Ops);
|
||||
int64_t Offset2 = getTargetData().getIndexedOffset(GEPPointerTy, GEP2Ops);
|
||||
int64_t Offset1 =
|
||||
getTargetData().getIndexedOffset(GEPPointerTy,&GEP1Ops[0],GEP1Ops.size());
|
||||
int64_t Offset2 =
|
||||
getTargetData().getIndexedOffset(GEPPointerTy,&GEP2Ops[0],GEP2Ops.size());
|
||||
assert(Offset1<Offset2 && "There is at least one different constant here!");
|
||||
|
||||
if ((uint64_t)(Offset2-Offset1) >= SizeMax) {
|
||||
|
|
|
@ -334,9 +334,10 @@ GenericValue ExecutionEngine::getConstantValue(const Constant *C) {
|
|||
case Instruction::GetElementPtr: {
|
||||
// Compute the index
|
||||
Result = getConstantValue(CE->getOperand(0));
|
||||
std::vector<Value*> Indexes(CE->op_begin()+1, CE->op_end());
|
||||
SmallVector<Value*, 8> Indices(CE->op_begin()+1, CE->op_end());
|
||||
uint64_t Offset =
|
||||
TD->getIndexedOffset(CE->getOperand(0)->getType(), Indexes);
|
||||
TD->getIndexedOffset(CE->getOperand(0)->getType(),
|
||||
&Indices[0], Indices.size());
|
||||
|
||||
if (getTargetData()->getPointerSize() == 4)
|
||||
Result.Int32Val += Offset;
|
||||
|
|
Loading…
Reference in New Issue