mirror of
https://github.com/intel/llvm.git
synced 2026-01-20 01:58:44 +08:00
polly/ADT: Remove implicit ilist iterator conversions, NFC
Remove all the implicit ilist iterator conversions from polly, in preparation for making them illegal in ADT. There was one oddity I came across: at line 95 of lib/CodeGen/LoopGenerators.cpp, there was a post-increment `Builder.GetInsertPoint()++`. Since it was a no-op, I removed it, but I admit I wonder if it might be a bug (both before and after this change)? Perhaps it should be a pre-increment? llvm-svn: 252357
This commit is contained in:
@@ -3593,7 +3593,7 @@ void ScopInfo::buildAccessFunctions(Region &R, BasicBlock &BB,
|
||||
auto &ScopRIL = *SD->getRequiredInvariantLoads(&R);
|
||||
|
||||
for (BasicBlock::iterator I = BB.begin(), E = --BB.end(); I != E; ++I) {
|
||||
Instruction *Inst = I;
|
||||
Instruction *Inst = &*I;
|
||||
|
||||
PHINode *PHI = dyn_cast<PHINode>(Inst);
|
||||
if (PHI)
|
||||
|
||||
@@ -79,7 +79,7 @@ Value *BlockGenerator::trySynthesizeNewValue(ScopStmt &Stmt, Value *Old,
|
||||
assert(IP != Builder.GetInsertBlock()->end() &&
|
||||
"Only instructions can be insert points for SCEVExpander");
|
||||
Value *Expanded = expandCodeFor(S, SE, DL, "polly", NewScev,
|
||||
Old->getType(), IP, &VTV);
|
||||
Old->getType(), &*IP, &VTV);
|
||||
|
||||
BBMap[Old] = Expanded;
|
||||
return Expanded;
|
||||
@@ -281,8 +281,8 @@ void BlockGenerator::copyStmt(ScopStmt &Stmt, LoopToScevMapT <S,
|
||||
}
|
||||
|
||||
BasicBlock *BlockGenerator::splitBB(BasicBlock *BB) {
|
||||
BasicBlock *CopyBB =
|
||||
SplitBlock(Builder.GetInsertBlock(), Builder.GetInsertPoint(), &DT, &LI);
|
||||
BasicBlock *CopyBB = SplitBlock(Builder.GetInsertBlock(),
|
||||
&*Builder.GetInsertPoint(), &DT, &LI);
|
||||
CopyBB->setName("polly.stmt." + BB->getName());
|
||||
return CopyBB;
|
||||
}
|
||||
@@ -291,7 +291,7 @@ BasicBlock *BlockGenerator::copyBB(ScopStmt &Stmt, BasicBlock *BB,
|
||||
ValueMapT &BBMap, LoopToScevMapT <S,
|
||||
isl_id_to_ast_expr *NewAccesses) {
|
||||
BasicBlock *CopyBB = splitBB(BB);
|
||||
Builder.SetInsertPoint(CopyBB->begin());
|
||||
Builder.SetInsertPoint(&CopyBB->front());
|
||||
generateScalarLoads(Stmt, BBMap);
|
||||
|
||||
copyBB(Stmt, BB, CopyBB, BBMap, LTS, NewAccesses);
|
||||
@@ -319,7 +319,7 @@ Value *BlockGenerator::getOrCreateAlloca(Value *ScalarBase,
|
||||
auto *Ty = ScalarBase->getType();
|
||||
auto NewAddr = new AllocaInst(Ty, ScalarBase->getName() + NameExt);
|
||||
EntryBB = &Builder.GetInsertBlock()->getParent()->getEntryBlock();
|
||||
NewAddr->insertBefore(EntryBB->getFirstInsertionPt());
|
||||
NewAddr->insertBefore(&*EntryBB->getFirstInsertionPt());
|
||||
Map[ScalarBase] = NewAddr;
|
||||
}
|
||||
|
||||
@@ -549,7 +549,7 @@ void BlockGenerator::createScalarFinalization(Region &R) {
|
||||
// Create the merge PHI that merges the optimized and unoptimized version.
|
||||
PHINode *MergePHI = PHINode::Create(EscapeInst->getType(), 2,
|
||||
EscapeInst->getName() + ".merge");
|
||||
MergePHI->insertBefore(MergeBB->getFirstInsertionPt());
|
||||
MergePHI->insertBefore(&*MergeBB->getFirstInsertionPt());
|
||||
|
||||
// Add the respective values to the merge PHI.
|
||||
MergePHI->addIncoming(EscapeInstReload, OptExitBB);
|
||||
@@ -624,7 +624,7 @@ void BlockGenerator::createExitPHINodeMerges(Scop &S) {
|
||||
Reload = Builder.CreateBitOrPointerCast(Reload, PHI->getType());
|
||||
Value *OriginalValue = PHI->getIncomingValueForBlock(MergeBB);
|
||||
auto *MergePHI = PHINode::Create(PHI->getType(), 2, Name + ".ph.merge");
|
||||
MergePHI->insertBefore(MergeBB->getFirstInsertionPt());
|
||||
MergePHI->insertBefore(&*MergeBB->getFirstInsertionPt());
|
||||
MergePHI->addIncoming(Reload, OptExitBB);
|
||||
MergePHI->addIncoming(OriginalValue, ExitBB);
|
||||
int Idx = PHI->getBasicBlockIndex(MergeBB);
|
||||
@@ -965,10 +965,10 @@ void VectorBlockGenerator::copyStmt(
|
||||
"the vector block generator");
|
||||
|
||||
BasicBlock *BB = Stmt.getBasicBlock();
|
||||
BasicBlock *CopyBB =
|
||||
SplitBlock(Builder.GetInsertBlock(), Builder.GetInsertPoint(), &DT, &LI);
|
||||
BasicBlock *CopyBB = SplitBlock(Builder.GetInsertBlock(),
|
||||
&*Builder.GetInsertPoint(), &DT, &LI);
|
||||
CopyBB->setName("polly.stmt." + BB->getName());
|
||||
Builder.SetInsertPoint(CopyBB->begin());
|
||||
Builder.SetInsertPoint(&CopyBB->front());
|
||||
|
||||
// Create two maps that store the mapping from the original instructions of
|
||||
// the old basic block to their copies in the new basic block. Those maps
|
||||
@@ -1022,10 +1022,10 @@ void RegionGenerator::copyStmt(ScopStmt &Stmt, LoopToScevMapT <S,
|
||||
// Create a dedicated entry for the region where we can reload all demoted
|
||||
// inputs.
|
||||
BasicBlock *EntryBB = R->getEntry();
|
||||
BasicBlock *EntryBBCopy =
|
||||
SplitBlock(Builder.GetInsertBlock(), Builder.GetInsertPoint(), &DT, &LI);
|
||||
BasicBlock *EntryBBCopy = SplitBlock(Builder.GetInsertBlock(),
|
||||
&*Builder.GetInsertPoint(), &DT, &LI);
|
||||
EntryBBCopy->setName("polly.stmt." + EntryBB->getName() + ".entry");
|
||||
Builder.SetInsertPoint(EntryBBCopy->begin());
|
||||
Builder.SetInsertPoint(&EntryBBCopy->front());
|
||||
|
||||
generateScalarLoads(Stmt, RegionMaps[EntryBBCopy]);
|
||||
|
||||
@@ -1057,7 +1057,7 @@ void RegionGenerator::copyStmt(ScopStmt &Stmt, LoopToScevMapT <S,
|
||||
RegionMap = RegionMaps[BBCopyIDom];
|
||||
|
||||
// Copy the block with the BlockGenerator.
|
||||
Builder.SetInsertPoint(BBCopy->begin());
|
||||
Builder.SetInsertPoint(&BBCopy->front());
|
||||
copyBB(Stmt, BB, BBCopy, RegionMap, LTS, IdToAstExp);
|
||||
|
||||
// In order to remap PHI nodes we store also basic block mappings.
|
||||
@@ -1079,8 +1079,8 @@ void RegionGenerator::copyStmt(ScopStmt &Stmt, LoopToScevMapT <S,
|
||||
}
|
||||
|
||||
// Now create a new dedicated region exit block and add it to the region map.
|
||||
BasicBlock *ExitBBCopy =
|
||||
SplitBlock(Builder.GetInsertBlock(), Builder.GetInsertPoint(), &DT, &LI);
|
||||
BasicBlock *ExitBBCopy = SplitBlock(Builder.GetInsertBlock(),
|
||||
&*Builder.GetInsertPoint(), &DT, &LI);
|
||||
ExitBBCopy->setName("polly.stmt." + R->getExit()->getName() + ".exit");
|
||||
BlockMap[R->getExit()] = ExitBBCopy;
|
||||
|
||||
@@ -1122,7 +1122,7 @@ void RegionGenerator::copyStmt(ScopStmt &Stmt, LoopToScevMapT <S,
|
||||
PHINode::Create(Builder.getInt32Ty(), 2, "polly.subregion.iv");
|
||||
Instruction *LoopPHIInc = BinaryOperator::CreateAdd(
|
||||
LoopPHI, Builder.getInt32(1), "polly.subregion.iv.inc");
|
||||
LoopPHI->insertBefore(BBCopy->begin());
|
||||
LoopPHI->insertBefore(&BBCopy->front());
|
||||
LoopPHIInc->insertBefore(BBCopy->getTerminator());
|
||||
|
||||
for (auto *PredBB : make_range(pred_begin(BB), pred_end(BB))) {
|
||||
@@ -1142,7 +1142,7 @@ void RegionGenerator::copyStmt(ScopStmt &Stmt, LoopToScevMapT <S,
|
||||
}
|
||||
|
||||
// Continue generating code in the exit block.
|
||||
Builder.SetInsertPoint(ExitBBCopy->getFirstInsertionPt());
|
||||
Builder.SetInsertPoint(&*ExitBBCopy->getFirstInsertionPt());
|
||||
|
||||
// Write values visible to other statements.
|
||||
generateScalarStores(Stmt, LTS, ValueMap);
|
||||
@@ -1168,6 +1168,7 @@ void RegionGenerator::generateScalarStores(ScopStmt &Stmt, LoopToScevMapT <S,
|
||||
|
||||
// In case we add the store into an exiting block, we need to restore the
|
||||
// position for stores in the exit node.
|
||||
BasicBlock *SavedInsertBB = Builder.GetInsertBlock();
|
||||
auto SavedInsertionPoint = Builder.GetInsertPoint();
|
||||
ValueMapT *LocalBBMap = &BBMap;
|
||||
|
||||
@@ -1189,7 +1190,7 @@ void RegionGenerator::generateScalarStores(ScopStmt &Stmt, LoopToScevMapT <S,
|
||||
|
||||
// Restore the insertion point if necessary.
|
||||
if (isa<TerminatorInst>(ScalarInst))
|
||||
Builder.SetInsertPoint(SavedInsertionPoint);
|
||||
Builder.SetInsertPoint(SavedInsertBB, SavedInsertionPoint);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1216,10 +1217,11 @@ void RegionGenerator::addOperandToPHI(ScopStmt &Stmt, const PHINode *PHI,
|
||||
|
||||
Value *Op = PHI->getIncomingValueForBlock(IncomingBB);
|
||||
|
||||
BasicBlock *OldBlock = Builder.GetInsertBlock();
|
||||
auto OldIP = Builder.GetInsertPoint();
|
||||
Builder.SetInsertPoint(BBCopy->getTerminator());
|
||||
OpCopy = getNewValue(Stmt, Op, BBCopyMap, LTS, getLoopForInst(PHI));
|
||||
Builder.SetInsertPoint(OldIP);
|
||||
Builder.SetInsertPoint(OldBlock, OldIP);
|
||||
} else {
|
||||
|
||||
if (PHICopy->getBasicBlockIndex(BBCopy) >= 0)
|
||||
|
||||
@@ -153,7 +153,7 @@ public:
|
||||
|
||||
Value *RTC = buildRTC(Builder, NodeBuilder.getExprBuilder());
|
||||
Builder.GetInsertBlock()->getTerminator()->setOperand(0, RTC);
|
||||
Builder.SetInsertPoint(StartBlock->begin());
|
||||
Builder.SetInsertPoint(&StartBlock->front());
|
||||
|
||||
NodeBuilder.create(AstRoot);
|
||||
|
||||
|
||||
@@ -157,7 +157,7 @@ Value *IslExprBuilder::createAccessAddress(isl_ast_expr *Expr) {
|
||||
DimSCEV = SCEVParameterRewriter::rewrite(DimSCEV, SE, Map);
|
||||
Value *DimSize =
|
||||
expandCodeFor(S, SE, DL, "polly", DimSCEV, DimSCEV->getType(),
|
||||
Builder.GetInsertPoint());
|
||||
&*Builder.GetInsertPoint());
|
||||
|
||||
Type *Ty = getWidestType(DimSize->getType(), IndexOp->getType());
|
||||
|
||||
@@ -495,7 +495,7 @@ IslExprBuilder::createOpBooleanConditional(__isl_take isl_ast_expr *Expr) {
|
||||
|
||||
auto InsertBB = Builder.GetInsertBlock();
|
||||
auto InsertPoint = Builder.GetInsertPoint();
|
||||
auto NextBB = SplitBlock(InsertBB, InsertPoint, &DT, &LI);
|
||||
auto NextBB = SplitBlock(InsertBB, &*InsertPoint, &DT, &LI);
|
||||
BasicBlock *CondBB = BasicBlock::Create(Context, "polly.cond", F);
|
||||
LI.changeLoopFor(CondBB, LI.getLoopFor(InsertBB));
|
||||
DT.addNewBlock(CondBB, InsertBB);
|
||||
|
||||
@@ -475,7 +475,7 @@ void IslNodeBuilder::createForSequential(__isl_take isl_ast_node *For) {
|
||||
|
||||
IDToValue.erase(IDToValue.find(IteratorID));
|
||||
|
||||
Builder.SetInsertPoint(ExitBlock->begin());
|
||||
Builder.SetInsertPoint(&ExitBlock->front());
|
||||
|
||||
isl_ast_node_free(For);
|
||||
isl_ast_expr_free(Iterator);
|
||||
@@ -538,10 +538,10 @@ void IslNodeBuilder::createForParallel(__isl_take isl_ast_node *For) {
|
||||
// The preamble of parallel code interacts different than normal code with
|
||||
// e.g., scalar initialization. Therefore, we ensure the parallel code is
|
||||
// separated from the last basic block.
|
||||
BasicBlock *ParBB =
|
||||
SplitBlock(Builder.GetInsertBlock(), Builder.GetInsertPoint(), &DT, &LI);
|
||||
BasicBlock *ParBB = SplitBlock(Builder.GetInsertBlock(),
|
||||
&*Builder.GetInsertPoint(), &DT, &LI);
|
||||
ParBB->setName("polly.parallel.for");
|
||||
Builder.SetInsertPoint(ParBB->begin());
|
||||
Builder.SetInsertPoint(&ParBB->front());
|
||||
|
||||
Body = isl_ast_node_for_get_body(For);
|
||||
Init = isl_ast_node_for_get_init(For);
|
||||
@@ -597,7 +597,7 @@ void IslNodeBuilder::createForParallel(__isl_take isl_ast_node *For) {
|
||||
IV = ParallelLoopGen.createParallelLoop(ValueLB, ValueUB, ValueInc,
|
||||
SubtreeValues, NewValues, &LoopBody);
|
||||
BasicBlock::iterator AfterLoop = Builder.GetInsertPoint();
|
||||
Builder.SetInsertPoint(LoopBody);
|
||||
Builder.SetInsertPoint(&*LoopBody);
|
||||
|
||||
// Save the current values.
|
||||
auto ValueMapCopy = ValueMap;
|
||||
@@ -620,7 +620,7 @@ void IslNodeBuilder::createForParallel(__isl_take isl_ast_node *For) {
|
||||
ValueMap = ValueMapCopy;
|
||||
IDToValue = IDToValueCopy;
|
||||
|
||||
Builder.SetInsertPoint(AfterLoop);
|
||||
Builder.SetInsertPoint(&*AfterLoop);
|
||||
removeSubFuncFromDomTree((*LoopBody).getParent()->getParent(), DT);
|
||||
|
||||
for (const Loop *L : Loops)
|
||||
@@ -656,10 +656,10 @@ void IslNodeBuilder::createIf(__isl_take isl_ast_node *If) {
|
||||
Function *F = Builder.GetInsertBlock()->getParent();
|
||||
LLVMContext &Context = F->getContext();
|
||||
|
||||
BasicBlock *CondBB =
|
||||
SplitBlock(Builder.GetInsertBlock(), Builder.GetInsertPoint(), &DT, &LI);
|
||||
BasicBlock *CondBB = SplitBlock(Builder.GetInsertBlock(),
|
||||
&*Builder.GetInsertPoint(), &DT, &LI);
|
||||
CondBB->setName("polly.cond");
|
||||
BasicBlock *MergeBB = SplitBlock(CondBB, CondBB->begin(), &DT, &LI);
|
||||
BasicBlock *MergeBB = SplitBlock(CondBB, &CondBB->front(), &DT, &LI);
|
||||
MergeBB->setName("polly.merge");
|
||||
BasicBlock *ThenBB = BasicBlock::Create(Context, "polly.then", F);
|
||||
BasicBlock *ElseBB = BasicBlock::Create(Context, "polly.else", F);
|
||||
@@ -683,16 +683,16 @@ void IslNodeBuilder::createIf(__isl_take isl_ast_node *If) {
|
||||
Builder.CreateBr(MergeBB);
|
||||
Builder.SetInsertPoint(ElseBB);
|
||||
Builder.CreateBr(MergeBB);
|
||||
Builder.SetInsertPoint(ThenBB->begin());
|
||||
Builder.SetInsertPoint(&ThenBB->front());
|
||||
|
||||
create(isl_ast_node_if_get_then(If));
|
||||
|
||||
Builder.SetInsertPoint(ElseBB->begin());
|
||||
Builder.SetInsertPoint(&ElseBB->front());
|
||||
|
||||
if (isl_ast_node_if_has_else(If))
|
||||
create(isl_ast_node_if_get_else(If));
|
||||
|
||||
Builder.SetInsertPoint(MergeBB->begin());
|
||||
Builder.SetInsertPoint(&MergeBB->front());
|
||||
|
||||
isl_ast_node_free(If);
|
||||
}
|
||||
@@ -885,10 +885,10 @@ Value *IslNodeBuilder::preloadInvariantLoad(const MemoryAccess &MA,
|
||||
Cond = Builder.CreateIsNotNull(Cond);
|
||||
|
||||
BasicBlock *CondBB = SplitBlock(Builder.GetInsertBlock(),
|
||||
Builder.GetInsertPoint(), &DT, &LI);
|
||||
&*Builder.GetInsertPoint(), &DT, &LI);
|
||||
CondBB->setName("polly.preload.cond");
|
||||
|
||||
BasicBlock *MergeBB = SplitBlock(CondBB, CondBB->begin(), &DT, &LI);
|
||||
BasicBlock *MergeBB = SplitBlock(CondBB, &CondBB->front(), &DT, &LI);
|
||||
MergeBB->setName("polly.preload.merge");
|
||||
|
||||
Function *F = Builder.GetInsertBlock()->getParent();
|
||||
@@ -979,7 +979,7 @@ void IslNodeBuilder::preloadInvariantEquivClass(
|
||||
|
||||
BasicBlock *EntryBB = &Builder.GetInsertBlock()->getParent()->getEntryBlock();
|
||||
auto *Alloca = new AllocaInst(AccInstTy, AccInst->getName() + ".preload.s2a");
|
||||
Alloca->insertBefore(EntryBB->getFirstInsertionPt());
|
||||
Alloca->insertBefore(&*EntryBB->getFirstInsertionPt());
|
||||
Builder.CreateStore(PreloadVal, Alloca);
|
||||
|
||||
const Region &R = S.getRegion();
|
||||
@@ -1007,10 +1007,10 @@ void IslNodeBuilder::preloadInvariantLoads() {
|
||||
if (InvariantEquivClasses.empty())
|
||||
return;
|
||||
|
||||
BasicBlock *PreLoadBB =
|
||||
SplitBlock(Builder.GetInsertBlock(), Builder.GetInsertPoint(), &DT, &LI);
|
||||
BasicBlock *PreLoadBB = SplitBlock(Builder.GetInsertBlock(),
|
||||
&*Builder.GetInsertPoint(), &DT, &LI);
|
||||
PreLoadBB->setName("polly.preload.begin");
|
||||
Builder.SetInsertPoint(PreLoadBB->begin());
|
||||
Builder.SetInsertPoint(&PreLoadBB->front());
|
||||
|
||||
for (const auto &IAClass : InvariantEquivClasses)
|
||||
preloadInvariantEquivClass(IAClass);
|
||||
@@ -1046,7 +1046,7 @@ void IslNodeBuilder::addParameters(__isl_take isl_set *Context) {
|
||||
}
|
||||
|
||||
Value *IslNodeBuilder::generateSCEV(const SCEV *Expr) {
|
||||
Instruction *InsertLocation = --(Builder.GetInsertBlock()->end());
|
||||
Instruction *InsertLocation = &*--(Builder.GetInsertBlock()->end());
|
||||
return expandCodeFor(S, SE, DL, "polly", Expr, Expr->getType(),
|
||||
InsertLocation, &ValueMap);
|
||||
}
|
||||
|
||||
@@ -92,7 +92,7 @@ Value *polly::createLoop(Value *LB, Value *UB, Value *Stride,
|
||||
Annotator->pushLoop(NewLoop, Parallel);
|
||||
|
||||
// ExitBB
|
||||
ExitBB = SplitBlock(BeforeBB, Builder.GetInsertPoint()++, &DT, &LI);
|
||||
ExitBB = SplitBlock(BeforeBB, &*Builder.GetInsertPoint(), &DT, &LI);
|
||||
ExitBB->setName("polly.loop_exit");
|
||||
|
||||
// BeforeBB
|
||||
@@ -153,7 +153,7 @@ Value *ParallelLoopGenerator::createParallelLoop(
|
||||
BasicBlock::iterator BeforeLoop = Builder.GetInsertPoint();
|
||||
Value *IV = createSubFn(Stride, Struct, UsedValues, Map, &SubFn);
|
||||
*LoopBody = Builder.GetInsertPoint();
|
||||
Builder.SetInsertPoint(BeforeLoop);
|
||||
Builder.SetInsertPoint(&*BeforeLoop);
|
||||
|
||||
Value *SubFnParam = Builder.CreateBitCast(Struct, Builder.getInt8PtrTy(),
|
||||
"polly.par.userContext");
|
||||
@@ -287,7 +287,7 @@ ParallelLoopGenerator::storeValuesIntoStruct(SetVector<Value *> &Values) {
|
||||
// in the entry block of the function and use annotations to denote the actual
|
||||
// live span (similar to clang).
|
||||
BasicBlock &EntryBB = Builder.GetInsertBlock()->getParent()->getEntryBlock();
|
||||
Instruction *IP = EntryBB.getFirstInsertionPt();
|
||||
Instruction *IP = &*EntryBB.getFirstInsertionPt();
|
||||
StructType *Ty = StructType::get(Builder.getContext(), Members);
|
||||
AllocaInst *Struct = new AllocaInst(Ty, 0, "polly.par.userContext", IP);
|
||||
|
||||
@@ -340,8 +340,8 @@ Value *ParallelLoopGenerator::createSubFn(Value *Stride, AllocaInst *StructData,
|
||||
Builder.SetInsertPoint(HeaderBB);
|
||||
LBPtr = Builder.CreateAlloca(LongType, 0, "polly.par.LBPtr");
|
||||
UBPtr = Builder.CreateAlloca(LongType, 0, "polly.par.UBPtr");
|
||||
UserContext = Builder.CreateBitCast(SubFn->arg_begin(), StructData->getType(),
|
||||
"polly.par.userContext");
|
||||
UserContext = Builder.CreateBitCast(
|
||||
&*SubFn->arg_begin(), StructData->getType(), "polly.par.userContext");
|
||||
|
||||
extractValuesFromStruct(Data, StructData->getAllocatedType(), UserContext,
|
||||
Map);
|
||||
@@ -365,7 +365,7 @@ Value *ParallelLoopGenerator::createSubFn(Value *Stride, AllocaInst *StructData,
|
||||
"polly.par.UBAdjusted");
|
||||
|
||||
Builder.CreateBr(CheckNextBB);
|
||||
Builder.SetInsertPoint(--Builder.GetInsertPoint());
|
||||
Builder.SetInsertPoint(&*--Builder.GetInsertPoint());
|
||||
IV = createLoop(LB, UB, Stride, Builder, P, LI, DT, AfterBB,
|
||||
ICmpInst::ICMP_SLE, nullptr, true, /* UseGuard */ false);
|
||||
|
||||
@@ -376,7 +376,7 @@ Value *ParallelLoopGenerator::createSubFn(Value *Stride, AllocaInst *StructData,
|
||||
createCallCleanupThread();
|
||||
Builder.CreateRetVoid();
|
||||
|
||||
Builder.SetInsertPoint(LoopBody);
|
||||
Builder.SetInsertPoint(&*LoopBody);
|
||||
*SubFnPtr = SubFn;
|
||||
|
||||
return IV;
|
||||
|
||||
@@ -174,7 +174,7 @@ void RuntimeDebugBuilder::createGPUPrinterT(PollyIRBuilder &Builder,
|
||||
auto T = ArrayType::get(Builder.getInt32Ty(), ToPrint.size() * 2);
|
||||
Value *Data = new AllocaInst(
|
||||
T, "polly.vprint.buffer",
|
||||
Builder.GetInsertBlock()->getParent()->getEntryBlock().begin());
|
||||
&Builder.GetInsertBlock()->getParent()->getEntryBlock().front());
|
||||
auto *DataPtr = Builder.CreateGEP(Data, {Zero, Zero});
|
||||
|
||||
int Offset = 0;
|
||||
|
||||
@@ -224,7 +224,7 @@ void polly::splitEntryBlockForAlloca(BasicBlock *EntryBlock, Pass *P) {
|
||||
RegionInfo *RI = RIP ? &RIP->getRegionInfo() : nullptr;
|
||||
|
||||
// splitBlock updates DT, LI and RI.
|
||||
splitBlock(EntryBlock, I, DT, LI, RI);
|
||||
splitBlock(EntryBlock, &*I, DT, LI, RI);
|
||||
}
|
||||
|
||||
/// The SCEVExpander will __not__ generate any code for an existing SDiv/SRem
|
||||
|
||||
Reference in New Issue
Block a user