Lines Matching defs:PredBB

119       for (MachineBasicBlock *PredBB : Preds) {
123 if (PHIBB == PredBB) {
132 << printMBBReference(*PredBB) << '\n';
354 /// Process PHI node in TailBB by turning it into a copy in PredBB. Remember the
355 /// source register that's contributed by PredBB and update SSA update map.
357 MachineInstr *MI, MachineBasicBlock *TailBB, MachineBasicBlock *PredBB,
362 unsigned SrcOpIdx = getPHISrcRegOpIdx(MI, PredBB);
374 addSSAUpdateEntry(DefReg, NewDef, PredBB);
379 // Remove PredBB from the PHI node.
388 /// Duplicate a TailBB instruction to PredBB and update
391 MachineInstr *MI, MachineBasicBlock *TailBB, MachineBasicBlock *PredBB,
396 BuildMI(*PredBB, PredBB->end(), PredBB->findDebugLoc(PredBB->begin()),
402 MachineInstr &NewMI = TII->duplicate(*PredBB, PredBB->end(), *MI);
417 addSSAUpdateEntry(Reg, NewReg, PredBB);
461 BuildMI(*PredBB, NewMI, NewMI.getDebugLoc(),
724 for (MachineBasicBlock *PredBB : BB.predecessors()) {
725 if (PredBB->succ_size() > 1)
730 if (TII->analyzeBranch(*PredBB, PredTBB, PredFBB, PredCond))
746 for (MachineBasicBlock *PredBB : Preds) {
747 if (PredBB->hasEHPadSuccessor() || PredBB->mayHaveInlineAsmBr())
750 if (bothUsedInPHI(*PredBB, Succs))
755 if (TII->analyzeBranch(*PredBB, PredTBB, PredFBB, PredCond))
759 LLVM_DEBUG(dbgs() << "\nTail-duplicating into PredBB: " << *PredBB
763 MachineBasicBlock *NextBB = PredBB->getNextNode();
793 auto DL = PredBB->findBranchDebugLoc();
794 TII->removeBranch(*PredBB);
796 if (!PredBB->isSuccessor(NewTarget))
797 PredBB->replaceSuccessor(TailBB, NewTarget);
799 PredBB->removeSuccessor(TailBB, true);
800 assert(PredBB->succ_size() <= 1);
804 TII->insertBranch(*PredBB, PredTBB, PredFBB, PredCond, DL);
806 TDBBs.push_back(PredBB);
812 MachineBasicBlock *PredBB) {
814 if (PredBB->succ_size() > 1)
819 if (TII->analyzeBranch(*PredBB, PredTBB, PredFBB, PredCond))
825 // indirect target, we need to see if the edge from PredBB to TailBB is from
826 // an INLINEASM_BR in PredBB, and then also if that edge was from the
829 // the successor list in PredBB and predecessor list in TailBB.
871 for (MachineBasicBlock *PredBB : Preds) {
872 assert(TailBB != PredBB &&
875 if (!canTailDuplicate(TailBB, PredBB))
884 IsLayoutSuccessor = (ForcedLayoutPred == PredBB);
885 else if (PredBB->isLayoutSuccessor(TailBB) && PredBB->canFallThrough())
891 LLVM_DEBUG(dbgs() << "\nTail-duplicating into PredBB: " << *PredBB
894 TDBBs.push_back(PredBB);
896 // Remove PredBB's unconditional branch.
897 TII->removeBranch(*PredBB);
899 // Clone the contents of TailBB into PredBB.
905 // from PredBB.
906 processPHI(&MI, TailBB, PredBB, LocalVRMap, CopyInfos, UsedByPhi, true);
910 duplicateInstruction(&MI, TailBB, PredBB, LocalVRMap, UsedByPhi);
913 appendCopies(PredBB, CopyInfos, Copies);
918 PredBB->removeSuccessor(PredBB->succ_begin());
919 assert(PredBB->succ_empty() &&
922 PredBB->addSuccessor(Succ, MBPI->getEdgeProbability(TailBB, Succ));
926 PredBB->updateTerminator(TailBB->getNextNode());
966 // from PredBB.
1029 for (MachineBasicBlock *PredBB : Preds) {
1030 if (is_contained(TDBBs, PredBB))
1034 if (PredBB->succ_size() != 1)
1042 // from PredBB.
1043 processPHI(&MI, TailBB, PredBB, LocalVRMap, CopyInfos, UsedByPhi, false);
1045 appendCopies(PredBB, CopyInfos, Copies);