mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-01 15:11:24 +00:00
[opaque pointer type] more gep API migration
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232274 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
81ebfb1802
commit
f508adde2e
@ -404,10 +404,9 @@ InsertPHITranslatedSubExpr(Value *InVal, BasicBlock *CurBB,
|
||||
GEPOps.push_back(OpVal);
|
||||
}
|
||||
|
||||
GetElementPtrInst *Result =
|
||||
GetElementPtrInst::Create(GEPOps[0], makeArrayRef(GEPOps).slice(1),
|
||||
InVal->getName()+".phi.trans.insert",
|
||||
PredBB->getTerminator());
|
||||
GetElementPtrInst *Result = GetElementPtrInst::Create(
|
||||
GEP->getSourceElementType(), GEPOps[0], makeArrayRef(GEPOps).slice(1),
|
||||
InVal->getName() + ".phi.trans.insert", PredBB->getTerminator());
|
||||
Result->setIsInBounds(GEP->isInBounds());
|
||||
NewInsts.push_back(Result);
|
||||
return Result;
|
||||
|
@ -3131,7 +3131,7 @@ std::error_code BitcodeReader::ParseFunctionBody(Function *F) {
|
||||
GEPIdx.push_back(Op);
|
||||
}
|
||||
|
||||
I = GetElementPtrInst::Create(BasePtr, GEPIdx);
|
||||
I = GetElementPtrInst::Create(Ty, BasePtr, GEPIdx);
|
||||
if (Ty && Ty != cast<GetElementPtrInst>(I)->getSourceElementType())
|
||||
return Error("Invalid record");
|
||||
InstructionList.push_back(I);
|
||||
|
@ -123,10 +123,9 @@ bool NVPTXFavorNonGenericAddrSpaces::hoistAddrSpaceCastFromGEP(
|
||||
// =>
|
||||
// %0 = gep X, indices
|
||||
// %1 = addrspacecast %0
|
||||
GetElementPtrInst *NewGEPI = GetElementPtrInst::Create(Cast->getOperand(0),
|
||||
Indices,
|
||||
GEP->getName(),
|
||||
GEPI);
|
||||
GetElementPtrInst *NewGEPI = GetElementPtrInst::Create(
|
||||
GEP->getSourceElementType(), Cast->getOperand(0), Indices,
|
||||
GEP->getName(), GEPI);
|
||||
NewGEPI->setIsInBounds(GEP->isInBounds());
|
||||
GEP->replaceAllUsesWith(
|
||||
new AddrSpaceCastInst(NewGEPI, GEP->getType(), "", GEPI));
|
||||
|
@ -900,10 +900,9 @@ CallGraphNode *ArgPromotion::DoPromotion(Function *F,
|
||||
|
||||
for (unsigned i = 0, e = STy->getNumElements(); i != e; ++i) {
|
||||
Idxs[1] = ConstantInt::get(Type::getInt32Ty(F->getContext()), i);
|
||||
Value *Idx =
|
||||
GetElementPtrInst::Create(TheAlloca, Idxs,
|
||||
TheAlloca->getName()+"."+Twine(i),
|
||||
InsertPt);
|
||||
Value *Idx = GetElementPtrInst::Create(
|
||||
AgTy, TheAlloca, Idxs, TheAlloca->getName() + "." + Twine(i),
|
||||
InsertPt);
|
||||
I2->setName(I->getName()+"."+Twine(i));
|
||||
new StoreInst(I2++, Idx, InsertPt);
|
||||
}
|
||||
|
@ -1476,10 +1476,13 @@ Instruction *InstCombiner::visitGetElementPtrInst(GetElementPtrInst &GEP) {
|
||||
}
|
||||
|
||||
if (!Indices.empty())
|
||||
return (GEP.isInBounds() && Src->isInBounds()) ?
|
||||
GetElementPtrInst::CreateInBounds(Src->getOperand(0), Indices,
|
||||
GEP.getName()) :
|
||||
GetElementPtrInst::Create(Src->getOperand(0), Indices, GEP.getName());
|
||||
return GEP.isInBounds() && Src->isInBounds()
|
||||
? GetElementPtrInst::CreateInBounds(
|
||||
Src->getSourceElementType(), Src->getOperand(0), Indices,
|
||||
GEP.getName())
|
||||
: GetElementPtrInst::Create(Src->getSourceElementType(),
|
||||
Src->getOperand(0), Indices,
|
||||
GEP.getName());
|
||||
}
|
||||
|
||||
if (GEP.getNumIndices() == 1) {
|
||||
@ -1557,8 +1560,8 @@ Instruction *InstCombiner::visitGetElementPtrInst(GetElementPtrInst &GEP) {
|
||||
if (CATy->getElementType() == StrippedPtrTy->getElementType()) {
|
||||
// -> GEP i8* X, ...
|
||||
SmallVector<Value*, 8> Idx(GEP.idx_begin()+1, GEP.idx_end());
|
||||
GetElementPtrInst *Res =
|
||||
GetElementPtrInst::Create(StrippedPtr, Idx, GEP.getName());
|
||||
GetElementPtrInst *Res = GetElementPtrInst::Create(
|
||||
StrippedPtrTy->getElementType(), StrippedPtr, Idx, GEP.getName());
|
||||
Res->setIsInBounds(GEP.isInBounds());
|
||||
if (StrippedPtrTy->getAddressSpace() == GEP.getAddressSpace())
|
||||
return Res;
|
||||
|
Loading…
Reference in New Issue
Block a user