Lines Matching refs:Loop
375 const LoopData *OuterLoop, LoopData &Loop, Distribution &Dist) {
377 for (const auto &I : Loop.Exits)
378 if (!addToDist(Dist, OuterLoop, Loop.getHeader(), I.first,
387 void BlockFrequencyInfoImplBase::computeLoopScale(LoopData &Loop) {
389 LLVM_DEBUG(dbgs() << "compute-loop-scale: " << getLoopName(Loop) << "\n");
405 for (auto &Mass : Loop.BackedgeMass)
412 Loop.Scale =
418 << " - scale = " << Loop.Scale << "\n");
422 void BlockFrequencyInfoImplBase::packageLoop(LoopData &Loop) {
423 LLVM_DEBUG(dbgs() << "packaging-loop: " << getLoopName(Loop) << "\n");
426 for (const BlockNode &M : Loop.Nodes) {
427 if (auto *Loop = Working[M.Index].getPackagedLoop())
428 Loop->Exits.clear();
431 Loop.IsPackaged = true;
515 static void unwrapLoop(BlockFrequencyInfoImplBase &BFI, LoopData &Loop) {
516 LLVM_DEBUG(dbgs() << "unwrap-loop-package: " << BFI.getLoopName(Loop)
517 << ": mass = " << Loop.Mass << ", scale = " << Loop.Scale
519 Loop.Scale *= Loop.Mass.toScaled();
520 Loop.IsPackaged = false;
521 LLVM_DEBUG(dbgs() << " => combined-scale = " << Loop.Scale << "\n");
526 for (const BlockNode &N : Loop.Nodes) {
530 Scaled64 New = Loop.Scale * F;
542 for (LoopData &Loop : Loops)
543 unwrapLoop(*this, Loop);
633 BlockFrequencyInfoImplBase::getLoopName(const LoopData &Loop) const {
634 return getBlockName(Loop.getHeader()) + (Loop.isIrreducible() ? "**" : "*");
769 auto Loop = BFI.Loops.emplace(Insert, OuterLoop, Headers.begin(),
773 for (const auto &N : Loop->Nodes)
775 BFI.Working[N.Index].Loop->Parent = &*Loop;
777 BFI.Working[N.Index].Loop = &*Loop;
812 void BlockFrequencyInfoImplBase::adjustLoopHeaderMass(LoopData &Loop) {
813 assert(Loop.isIrreducible() && "this only makes sense on irreducible loops");
825 for (uint32_t H = 0; H < Loop.NumHeaders; ++H) {
826 auto &HeaderNode = Loop.Nodes[H];
827 auto &BackedgeMass = Loop.BackedgeMass[Loop.getHeaderIndex(HeaderNode)];