mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-28 03:25:23 +00:00
eliminate use of TargetData::getIndexedOffset that takes a vector
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34163 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user