mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-05-21 12:38:45 +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);
|
GEPOps.push_back(OpVal);
|
||||||
}
|
}
|
||||||
|
|
||||||
GetElementPtrInst *Result =
|
GetElementPtrInst *Result = GetElementPtrInst::Create(
|
||||||
GetElementPtrInst::Create(GEPOps[0], makeArrayRef(GEPOps).slice(1),
|
GEP->getSourceElementType(), GEPOps[0], makeArrayRef(GEPOps).slice(1),
|
||||||
InVal->getName()+".phi.trans.insert",
|
InVal->getName() + ".phi.trans.insert", PredBB->getTerminator());
|
||||||
PredBB->getTerminator());
|
|
||||||
Result->setIsInBounds(GEP->isInBounds());
|
Result->setIsInBounds(GEP->isInBounds());
|
||||||
NewInsts.push_back(Result);
|
NewInsts.push_back(Result);
|
||||||
return Result;
|
return Result;
|
||||||
|
@ -3131,7 +3131,7 @@ std::error_code BitcodeReader::ParseFunctionBody(Function *F) {
|
|||||||
GEPIdx.push_back(Op);
|
GEPIdx.push_back(Op);
|
||||||
}
|
}
|
||||||
|
|
||||||
I = GetElementPtrInst::Create(BasePtr, GEPIdx);
|
I = GetElementPtrInst::Create(Ty, BasePtr, GEPIdx);
|
||||||
if (Ty && Ty != cast<GetElementPtrInst>(I)->getSourceElementType())
|
if (Ty && Ty != cast<GetElementPtrInst>(I)->getSourceElementType())
|
||||||
return Error("Invalid record");
|
return Error("Invalid record");
|
||||||
InstructionList.push_back(I);
|
InstructionList.push_back(I);
|
||||||
|
@ -123,10 +123,9 @@ bool NVPTXFavorNonGenericAddrSpaces::hoistAddrSpaceCastFromGEP(
|
|||||||
// =>
|
// =>
|
||||||
// %0 = gep X, indices
|
// %0 = gep X, indices
|
||||||
// %1 = addrspacecast %0
|
// %1 = addrspacecast %0
|
||||||
GetElementPtrInst *NewGEPI = GetElementPtrInst::Create(Cast->getOperand(0),
|
GetElementPtrInst *NewGEPI = GetElementPtrInst::Create(
|
||||||
Indices,
|
GEP->getSourceElementType(), Cast->getOperand(0), Indices,
|
||||||
GEP->getName(),
|
GEP->getName(), GEPI);
|
||||||
GEPI);
|
|
||||||
NewGEPI->setIsInBounds(GEP->isInBounds());
|
NewGEPI->setIsInBounds(GEP->isInBounds());
|
||||||
GEP->replaceAllUsesWith(
|
GEP->replaceAllUsesWith(
|
||||||
new AddrSpaceCastInst(NewGEPI, GEP->getType(), "", GEPI));
|
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) {
|
for (unsigned i = 0, e = STy->getNumElements(); i != e; ++i) {
|
||||||
Idxs[1] = ConstantInt::get(Type::getInt32Ty(F->getContext()), i);
|
Idxs[1] = ConstantInt::get(Type::getInt32Ty(F->getContext()), i);
|
||||||
Value *Idx =
|
Value *Idx = GetElementPtrInst::Create(
|
||||||
GetElementPtrInst::Create(TheAlloca, Idxs,
|
AgTy, TheAlloca, Idxs, TheAlloca->getName() + "." + Twine(i),
|
||||||
TheAlloca->getName()+"."+Twine(i),
|
InsertPt);
|
||||||
InsertPt);
|
|
||||||
I2->setName(I->getName()+"."+Twine(i));
|
I2->setName(I->getName()+"."+Twine(i));
|
||||||
new StoreInst(I2++, Idx, InsertPt);
|
new StoreInst(I2++, Idx, InsertPt);
|
||||||
}
|
}
|
||||||
|
@ -1476,10 +1476,13 @@ Instruction *InstCombiner::visitGetElementPtrInst(GetElementPtrInst &GEP) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!Indices.empty())
|
if (!Indices.empty())
|
||||||
return (GEP.isInBounds() && Src->isInBounds()) ?
|
return GEP.isInBounds() && Src->isInBounds()
|
||||||
GetElementPtrInst::CreateInBounds(Src->getOperand(0), Indices,
|
? GetElementPtrInst::CreateInBounds(
|
||||||
GEP.getName()) :
|
Src->getSourceElementType(), Src->getOperand(0), Indices,
|
||||||
GetElementPtrInst::Create(Src->getOperand(0), Indices, GEP.getName());
|
GEP.getName())
|
||||||
|
: GetElementPtrInst::Create(Src->getSourceElementType(),
|
||||||
|
Src->getOperand(0), Indices,
|
||||||
|
GEP.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (GEP.getNumIndices() == 1) {
|
if (GEP.getNumIndices() == 1) {
|
||||||
@ -1557,8 +1560,8 @@ Instruction *InstCombiner::visitGetElementPtrInst(GetElementPtrInst &GEP) {
|
|||||||
if (CATy->getElementType() == StrippedPtrTy->getElementType()) {
|
if (CATy->getElementType() == StrippedPtrTy->getElementType()) {
|
||||||
// -> GEP i8* X, ...
|
// -> GEP i8* X, ...
|
||||||
SmallVector<Value*, 8> Idx(GEP.idx_begin()+1, GEP.idx_end());
|
SmallVector<Value*, 8> Idx(GEP.idx_begin()+1, GEP.idx_end());
|
||||||
GetElementPtrInst *Res =
|
GetElementPtrInst *Res = GetElementPtrInst::Create(
|
||||||
GetElementPtrInst::Create(StrippedPtr, Idx, GEP.getName());
|
StrippedPtrTy->getElementType(), StrippedPtr, Idx, GEP.getName());
|
||||||
Res->setIsInBounds(GEP.isInBounds());
|
Res->setIsInBounds(GEP.isInBounds());
|
||||||
if (StrippedPtrTy->getAddressSpace() == GEP.getAddressSpace())
|
if (StrippedPtrTy->getAddressSpace() == GEP.getAddressSpace())
|
||||||
return Res;
|
return Res;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user