Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/Transforms/Scalar/LoopInterchange.cpp
Show First 20 Lines • Show All 1,234 Lines • ▼ Show 20 Lines | void LoopInterchangeTransform::restructureLoops( | ||||
// The preheader of the original outer loop becomes part of the new | // The preheader of the original outer loop becomes part of the new | ||||
// outer loop. | // outer loop. | ||||
NewOuter->addBlockEntry(OrigOuterPreHeader); | NewOuter->addBlockEntry(OrigOuterPreHeader); | ||||
LI->changeLoopFor(OrigOuterPreHeader, NewOuter); | LI->changeLoopFor(OrigOuterPreHeader, NewOuter); | ||||
// Tell SE that we move the loops around. | // Tell SE that we move the loops around. | ||||
SE->forgetLoop(NewOuter); | SE->forgetLoop(NewOuter); | ||||
SE->forgetLoop(NewInner); | |||||
} | } | ||||
bool LoopInterchangeTransform::transform() { | bool LoopInterchangeTransform::transform() { | ||||
bool Transformed = false; | bool Transformed = false; | ||||
if (InnerLoop->getSubLoops().empty()) { | if (InnerLoop->getSubLoops().empty()) { | ||||
BasicBlock *InnerLoopPreHeader = InnerLoop->getLoopPreheader(); | BasicBlock *InnerLoopPreHeader = InnerLoop->getLoopPreheader(); | ||||
LLVM_DEBUG(dbgs() << "Splitting the inner loop latch\n"); | LLVM_DEBUG(dbgs() << "Splitting the inner loop latch\n"); | ||||
▲ Show 20 Lines • Show All 482 Lines • Show Last 20 Lines |