mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
Convert IRBuilder::CreateGEP and IRBuilder::CreateInBoundsGEP to use
ArrayRef. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135761 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1360,9 +1360,8 @@ Instruction *InstCombiner::commonPointerCastTransforms(CastInst &CI) {
|
||||
// and bitcast the result. This eliminates one bitcast, potentially
|
||||
// two.
|
||||
Value *NGEP = cast<GEPOperator>(GEP)->isInBounds() ?
|
||||
Builder->CreateInBoundsGEP(OrigBase,
|
||||
NewIndices.begin(), NewIndices.end()) :
|
||||
Builder->CreateGEP(OrigBase, NewIndices.begin(), NewIndices.end());
|
||||
Builder->CreateInBoundsGEP(OrigBase, NewIndices) :
|
||||
Builder->CreateGEP(OrigBase, NewIndices);
|
||||
NGEP->takeName(GEP);
|
||||
|
||||
if (isa<BitCastInst>(CI))
|
||||
|
@@ -327,8 +327,7 @@ static Instruction *InstCombineStoreToCast(InstCombiner &IC, StoreInst &SI) {
|
||||
// SIOp0 is a pointer to aggregate and this is a store to the first field,
|
||||
// emit a GEP to index into its first field.
|
||||
if (!NewGEPIndices.empty())
|
||||
CastOp = IC.Builder->CreateInBoundsGEP(CastOp, NewGEPIndices.begin(),
|
||||
NewGEPIndices.end());
|
||||
CastOp = IC.Builder->CreateInBoundsGEP(CastOp, NewGEPIndices);
|
||||
|
||||
NewCast = IC.Builder->CreateCast(opcode, SIOp0, CastDstTy,
|
||||
SIOp0->getName()+".c");
|
||||
|
@@ -916,8 +916,8 @@ Instruction *InstCombiner::visitGetElementPtrInst(GetElementPtrInst &GEP) {
|
||||
Idx[0] = Constant::getNullValue(Type::getInt32Ty(GEP.getContext()));
|
||||
Idx[1] = GEP.getOperand(1);
|
||||
Value *NewGEP = GEP.isInBounds() ?
|
||||
Builder->CreateInBoundsGEP(StrippedPtr, Idx, Idx + 2, GEP.getName()) :
|
||||
Builder->CreateGEP(StrippedPtr, Idx, Idx + 2, GEP.getName());
|
||||
Builder->CreateInBoundsGEP(StrippedPtr, Idx, GEP.getName()) :
|
||||
Builder->CreateGEP(StrippedPtr, Idx, GEP.getName());
|
||||
// V and GEP are both pointer types --> BitCast
|
||||
return new BitCastInst(NewGEP, GEP.getType());
|
||||
}
|
||||
@@ -975,8 +975,8 @@ Instruction *InstCombiner::visitGetElementPtrInst(GetElementPtrInst &GEP) {
|
||||
Idx[0] = Constant::getNullValue(Type::getInt32Ty(GEP.getContext()));
|
||||
Idx[1] = NewIdx;
|
||||
Value *NewGEP = GEP.isInBounds() ?
|
||||
Builder->CreateInBoundsGEP(StrippedPtr, Idx, Idx + 2,GEP.getName()):
|
||||
Builder->CreateGEP(StrippedPtr, Idx, Idx + 2, GEP.getName());
|
||||
Builder->CreateInBoundsGEP(StrippedPtr, Idx, GEP.getName()):
|
||||
Builder->CreateGEP(StrippedPtr, Idx, GEP.getName());
|
||||
// The NewGEP must be pointer typed, so must the old one -> BitCast
|
||||
return new BitCastInst(NewGEP, GEP.getType());
|
||||
}
|
||||
@@ -1027,10 +1027,8 @@ Instruction *InstCombiner::visitGetElementPtrInst(GetElementPtrInst &GEP) {
|
||||
cast<PointerType>(BCI->getOperand(0)->getType())->getElementType();
|
||||
if (FindElementAtOffset(InTy, Offset, NewIndices)) {
|
||||
Value *NGEP = GEP.isInBounds() ?
|
||||
Builder->CreateInBoundsGEP(BCI->getOperand(0), NewIndices.begin(),
|
||||
NewIndices.end()) :
|
||||
Builder->CreateGEP(BCI->getOperand(0), NewIndices.begin(),
|
||||
NewIndices.end());
|
||||
Builder->CreateInBoundsGEP(BCI->getOperand(0), NewIndices) :
|
||||
Builder->CreateGEP(BCI->getOperand(0), NewIndices);
|
||||
|
||||
if (NGEP->getType() == GEP.getType())
|
||||
return ReplaceInstUsesWith(GEP, NGEP);
|
||||
@@ -1322,8 +1320,7 @@ Instruction *InstCombiner::visitExtractValueInst(ExtractValueInst &EV) {
|
||||
// We need to insert these at the location of the old load, not at that of
|
||||
// the extractvalue.
|
||||
Builder->SetInsertPoint(L->getParent(), L);
|
||||
Value *GEP = Builder->CreateInBoundsGEP(L->getPointerOperand(),
|
||||
Indices.begin(), Indices.end());
|
||||
Value *GEP = Builder->CreateInBoundsGEP(L->getPointerOperand(), Indices);
|
||||
// Returning the load directly will cause the main loop to insert it in
|
||||
// the wrong spot, so use ReplaceInstUsesWith().
|
||||
return ReplaceInstUsesWith(EV, Builder->CreateLoad(GEP));
|
||||
|
@@ -478,8 +478,7 @@ bool GCOVProfiler::emitProfileArcs(DebugInfoFinder &DIF) {
|
||||
SmallVector<Value *, 2> Idx;
|
||||
Idx.push_back(Constant::getNullValue(Type::getInt64Ty(*Ctx)));
|
||||
Idx.push_back(Sel);
|
||||
Value *Counter = Builder.CreateInBoundsGEP(Counters,
|
||||
Idx.begin(), Idx.end());
|
||||
Value *Counter = Builder.CreateInBoundsGEP(Counters, Idx);
|
||||
Value *Count = Builder.CreateLoad(Counter);
|
||||
Count = Builder.CreateAdd(Count,
|
||||
ConstantInt::get(Type::getInt64Ty(*Ctx),1));
|
||||
|
Reference in New Issue
Block a user