Lines Matching defs:LoopChain

557   void rotateLoop(BlockChain &LoopChain, const MachineBasicBlock *ExitingBB,
559 void rotateLoopWithProfile(BlockChain &LoopChain, const MachineLoop &L,
2366 void MachineBlockPlacement::rotateLoop(BlockChain &LoopChain,
2373 MachineBasicBlock *Top = *LoopChain.begin();
2374 MachineBasicBlock *Bottom = *std::prev(LoopChain.end());
2404 BlockChain::iterator ExitIt = llvm::find(LoopChain, ExitingBB);
2405 if (ExitIt == LoopChain.end())
2428 assert(std::next(ExitIt) != LoopChain.end() &&
2438 std::rotate(LoopChain.begin(), std::next(ExitIt), LoopChain.end());
2455 BlockChain &LoopChain, const MachineLoop &L,
2457 auto RotationPos = LoopChain.end();
2458 MachineBasicBlock *ChainHeaderBB = *LoopChain.begin();
2501 for (auto *BB : LoopChain) {
2520 for (auto Iter = LoopChain.begin(), TailIter = std::prev(LoopChain.end()),
2521 EndIter = LoopChain.end();
2525 if (TailIter == LoopChain.end())
2526 TailIter = LoopChain.begin();
2536 if (Iter != LoopChain.begin())
2584 if (RotationPos != LoopChain.end()) {
2587 std::rotate(LoopChain.begin(), RotationPos, LoopChain.end());
2685 BlockChain &LoopChain = *BlockToChain[LoopTop];
2691 assert(LoopChain.UnscheduledPredecessors == 0 &&
2692 "LoopChain should not have unscheduled predecessors.");
2693 UpdatedPreds.insert(&LoopChain);
2698 buildChain(LoopTop, LoopChain, &LoopBlockSet);
2701 rotateLoopWithProfile(LoopChain, L, LoopBlockSet);
2703 rotateLoop(LoopChain, PreferredLoopExit, ExitFreq, LoopBlockSet);
2708 if (LoopChain.UnscheduledPredecessors) {
2712 << " Chain header: " << getBlockName(*LoopChain.begin()) << "\n";
2714 for (MachineBasicBlock *ChainBB : LoopChain) {
2722 << " Chain header: " << getBlockName(*LoopChain.begin()) << "\n"
2732 << " Chain header: " << getBlockName(*LoopChain.begin()) << "\n"