forked from OSchip/llvm-project
[LoopUnroll] Use addClonedBlockToLoopInfo to clone the top level loop (NFC)
Summary: rL293124 added the necessary infrastructure to properly add the cloned top level loop to LoopInfo, which means we do not have to do it manually in CloneLoopBlocks. @mkuper sorry for not pointing this out during my review of D29156, I just realized that today. Reviewers: mzolotukhin, chandlerc, mkuper Reviewed By: mkuper Subscribers: llvm-commits, mkuper Differential Revision: https://reviews.llvm.org/D29173 llvm-svn: 293615
This commit is contained in:
parent
12850eeac5
commit
5364cf3b56
|
@ -300,20 +300,10 @@ static void CloneLoopBlocks(Loop *L, Value *NewIter,
|
|||
Function *F = Header->getParent();
|
||||
LoopBlocksDFS::RPOIterator BlockBegin = LoopBlocks.beginRPO();
|
||||
LoopBlocksDFS::RPOIterator BlockEnd = LoopBlocks.endRPO();
|
||||
Loop *NewLoop = nullptr;
|
||||
Loop *ParentLoop = L->getParentLoop();
|
||||
if (CreateRemainderLoop) {
|
||||
NewLoop = new Loop();
|
||||
if (ParentLoop)
|
||||
ParentLoop->addChildLoop(NewLoop);
|
||||
else
|
||||
LI->addTopLevelLoop(NewLoop);
|
||||
}
|
||||
|
||||
NewLoopsMap NewLoops;
|
||||
if (NewLoop)
|
||||
NewLoops[L] = NewLoop;
|
||||
else if (ParentLoop)
|
||||
NewLoops[ParentLoop] = ParentLoop;
|
||||
if (!CreateRemainderLoop)
|
||||
NewLoops[L] = ParentLoop;
|
||||
|
||||
// For each block in the original loop, create a new copy,
|
||||
|
@ -321,7 +311,7 @@ static void CloneLoopBlocks(Loop *L, Value *NewIter,
|
|||
for (LoopBlocksDFS::RPOIterator BB = BlockBegin; BB != BlockEnd; ++BB) {
|
||||
BasicBlock *NewBB = CloneBasicBlock(*BB, VMap, "." + suffix, F);
|
||||
NewBlocks.push_back(NewBB);
|
||||
|
||||
|
||||
// If we're unrolling the outermost loop, there's no remainder loop,
|
||||
// and this block isn't in a nested loop, then the new block is not
|
||||
// in any loop. Otherwise, add it to loopinfo.
|
||||
|
@ -396,7 +386,9 @@ static void CloneLoopBlocks(Loop *L, Value *NewIter,
|
|||
NewPHI->setIncomingValue(idx, V);
|
||||
}
|
||||
}
|
||||
if (NewLoop) {
|
||||
if (CreateRemainderLoop) {
|
||||
Loop *NewLoop = NewLoops[L];
|
||||
assert(NewLoop && "L should have been cloned");
|
||||
// Add unroll disable metadata to disable future unrolling for this loop.
|
||||
SmallVector<Metadata *, 4> MDs;
|
||||
// Reserve first location for self reference to the LoopID metadata node.
|
||||
|
|
Loading…
Reference in New Issue