[polly] r252357 - polly/ADT: Remove implicit ilist iterator conversions, NFC
Duncan P. N. Exon Smith via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 6 16:01:07 PST 2015
Thanks for checking!
> On 2015-Nov-06, at 15:10, Johannes Doerfert <doerfert at cs.uni-saarland.de> wrote:
>
> First, thanks for preparing Polly!
>
> The no-op post increment was in there at least from 9ea5f891 (March '12).
>
> I guess it was some mistake but the loop generation has been stable for
> over a year now without any bugs popping up, thus the increment was
> probably just a leftover that was never really needed. Anyway, if a bug
> related to the insert position in the loop generator pop's up, we have
> an idea where to look first.
>
> The other changes seem all fine to me.
>
> Cheers,
> Johannes
>
> On 11/06, Duncan P. N. Exon Smith via llvm-commits wrote:
>>
>>> On 2015-Nov-06, at 14:56, Duncan P. N. Exon Smith via llvm-commits <llvm-commits at lists.llvm.org> wrote:
>>>
>>> Author: dexonsmith
>>> Date: Fri Nov 6 16:56:54 2015
>>> New Revision: 252357
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=252357&view=rev
>>> Log:
>>> 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?
>>
>> Tobias, you may want to check this:
>>
>>>
>>> Modified:
>>> polly/trunk/lib/Analysis/ScopInfo.cpp
>>> polly/trunk/lib/CodeGen/BlockGenerators.cpp
>>> polly/trunk/lib/CodeGen/CodeGeneration.cpp
>>> polly/trunk/lib/CodeGen/IslExprBuilder.cpp
>>> polly/trunk/lib/CodeGen/IslNodeBuilder.cpp
>>> polly/trunk/lib/CodeGen/LoopGenerators.cpp
>>> polly/trunk/lib/CodeGen/RuntimeDebugBuilder.cpp
>>> polly/trunk/lib/Support/ScopHelper.cpp
>>>
>>> Modified: polly/trunk/lib/Analysis/ScopInfo.cpp
>>> URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/ScopInfo.cpp?rev=252357&r1=252356&r2=252357&view=diff
>>> ==============================================================================
>>> --- polly/trunk/lib/Analysis/ScopInfo.cpp (original)
>>> +++ polly/trunk/lib/Analysis/ScopInfo.cpp Fri Nov 6 16:56:54 2015
>>> @@ -3593,7 +3593,7 @@ void ScopInfo::buildAccessFunctions(Regi
>>> 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)
>>>
>>> Modified: polly/trunk/lib/CodeGen/BlockGenerators.cpp
>>> URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/CodeGen/BlockGenerators.cpp?rev=252357&r1=252356&r2=252357&view=diff
>>> ==============================================================================
>>> --- polly/trunk/lib/CodeGen/BlockGenerators.cpp (original)
>>> +++ polly/trunk/lib/CodeGen/BlockGenerators.cpp Fri Nov 6 16:56:54 2015
>>> @@ -79,7 +79,7 @@ Value *BlockGenerator::trySynthesizeNewV
>>> 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 &
>>> }
>>>
>>> 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(ScopS
>>> 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
>>> 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::createScalarFinaliz
>>> // 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::createExitPHINodeMe
>>> 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
>>> // 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
>>> 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
>>> }
>>>
>>> // 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
>>> 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
>>> }
>>>
>>> // 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::generateScalarStor
>>>
>>> // 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::generateScalarStor
>>>
>>> // Restore the insertion point if necessary.
>>> if (isa<TerminatorInst>(ScalarInst))
>>> - Builder.SetInsertPoint(SavedInsertionPoint);
>>> + Builder.SetInsertPoint(SavedInsertBB, SavedInsertionPoint);
>>> }
>>> }
>>>
>>> @@ -1216,10 +1217,11 @@ void RegionGenerator::addOperandToPHI(Sc
>>>
>>> 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)
>>>
>>> Modified: polly/trunk/lib/CodeGen/CodeGeneration.cpp
>>> URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/CodeGen/CodeGeneration.cpp?rev=252357&r1=252356&r2=252357&view=diff
>>> ==============================================================================
>>> --- polly/trunk/lib/CodeGen/CodeGeneration.cpp (original)
>>> +++ polly/trunk/lib/CodeGen/CodeGeneration.cpp Fri Nov 6 16:56:54 2015
>>> @@ -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);
>>>
>>>
>>> Modified: polly/trunk/lib/CodeGen/IslExprBuilder.cpp
>>> URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/CodeGen/IslExprBuilder.cpp?rev=252357&r1=252356&r2=252357&view=diff
>>> ==============================================================================
>>> --- polly/trunk/lib/CodeGen/IslExprBuilder.cpp (original)
>>> +++ polly/trunk/lib/CodeGen/IslExprBuilder.cpp Fri Nov 6 16:56:54 2015
>>> @@ -157,7 +157,7 @@ Value *IslExprBuilder::createAccessAddre
>>> 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::createOpBooleanCondition
>>>
>>> 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);
>>>
>>> Modified: polly/trunk/lib/CodeGen/IslNodeBuilder.cpp
>>> URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/CodeGen/IslNodeBuilder.cpp?rev=252357&r1=252356&r2=252357&view=diff
>>> ==============================================================================
>>> --- polly/trunk/lib/CodeGen/IslNodeBuilder.cpp (original)
>>> +++ polly/trunk/lib/CodeGen/IslNodeBuilder.cpp Fri Nov 6 16:56:54 2015
>>> @@ -475,7 +475,7 @@ void IslNodeBuilder::createForSequential
>>>
>>> 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(_
>>> // 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(_
>>> 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(_
>>> 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
>>> 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
>>> 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::preloadInvariantL
>>> 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::preloadInvariantEqu
>>>
>>> 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::preloadInvariantLoa
>>> 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
>>> }
>>>
>>> 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);
>>> }
>>>
>>> Modified: polly/trunk/lib/CodeGen/LoopGenerators.cpp
>>> URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/CodeGen/LoopGenerators.cpp?rev=252357&r1=252356&r2=252357&view=diff
>>> ==============================================================================
>>> --- polly/trunk/lib/CodeGen/LoopGenerators.cpp (original)
>>> +++ polly/trunk/lib/CodeGen/LoopGenerators.cpp Fri Nov 6 16:56:54 2015
>>> @@ -92,7 +92,7 @@ Value *polly::createLoop(Value *LB, Valu
>>> Annotator->pushLoop(NewLoop, Parallel);
>>>
>>> // ExitBB
>>> - ExitBB = SplitBlock(BeforeBB, Builder.GetInsertPoint()++, &DT, &LI);
>>> + ExitBB = SplitBlock(BeforeBB, &*Builder.GetInsertPoint(), &DT, &LI);
>>
>> Should this be `&*++Builder.GetInsertPoint()`? The change I made here is
>> NFC, but I wonder if there was a bug in the code already.
>>
>>> ExitBB->setName("polly.loop_exit");
>>>
>>> // BeforeBB
>>> @@ -153,7 +153,7 @@ Value *ParallelLoopGenerator::createPara
>>> 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::storeValuesIntoSt
>>> // 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::createSubF
>>> 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::createSubF
>>> "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::createSubF
>>> createCallCleanupThread();
>>> Builder.CreateRetVoid();
>>>
>>> - Builder.SetInsertPoint(LoopBody);
>>> + Builder.SetInsertPoint(&*LoopBody);
>>> *SubFnPtr = SubFn;
>>>
>>> return IV;
>>>
>>> Modified: polly/trunk/lib/CodeGen/RuntimeDebugBuilder.cpp
>>> URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/CodeGen/RuntimeDebugBuilder.cpp?rev=252357&r1=252356&r2=252357&view=diff
>>> ==============================================================================
>>> --- polly/trunk/lib/CodeGen/RuntimeDebugBuilder.cpp (original)
>>> +++ polly/trunk/lib/CodeGen/RuntimeDebugBuilder.cpp Fri Nov 6 16:56:54 2015
>>> @@ -174,7 +174,7 @@ void RuntimeDebugBuilder::createGPUPrint
>>> 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;
>>>
>>> Modified: polly/trunk/lib/Support/ScopHelper.cpp
>>> URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Support/ScopHelper.cpp?rev=252357&r1=252356&r2=252357&view=diff
>>> ==============================================================================
>>> --- polly/trunk/lib/Support/ScopHelper.cpp (original)
>>> +++ polly/trunk/lib/Support/ScopHelper.cpp Fri Nov 6 16:56:54 2015
>>> @@ -224,7 +224,7 @@ void polly::splitEntryBlockForAlloca(Bas
>>> 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
>>>
>>>
>>> _______________________________________________
>>> llvm-commits mailing list
>>> llvm-commits at lists.llvm.org
>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
> --
>
> Johannes Doerfert
> Researcher / PhD Student
>
> Compiler Design Lab (Prof. Hack)
> Saarland University, Computer Science
> Building E1.3, Room 4.31
>
> Tel. +49 (0)681 302-57521 : doerfert at cs.uni-saarland.de
> Fax. +49 (0)681 302-3065 : http://www.cdl.uni-saarland.de/people/doerfert
More information about the llvm-commits
mailing list