Lines Matching defs:PredBB
118 for (MachineBasicBlock *PredBB : Preds) {
122 if (PHIBB == PredBB) {
131 << printMBBReference(*PredBB) << '\n';
353 /// Process PHI node in TailBB by turning it into a copy in PredBB. Remember the
354 /// source register that's contributed by PredBB and update SSA update map.
356 MachineInstr *MI, MachineBasicBlock *TailBB, MachineBasicBlock *PredBB,
361 unsigned SrcOpIdx = getPHISrcRegOpIdx(MI, PredBB);
373 addSSAUpdateEntry(DefReg, NewDef, PredBB);
378 // Remove PredBB from the PHI node.
387 /// Duplicate a TailBB instruction to PredBB and update
390 MachineInstr *MI, MachineBasicBlock *TailBB, MachineBasicBlock *PredBB,
395 BuildMI(*PredBB, PredBB->end(), PredBB->findDebugLoc(PredBB->begin()),
401 MachineInstr &NewMI = TII->duplicate(*PredBB, PredBB->end(), *MI);
416 addSSAUpdateEntry(Reg, NewReg, PredBB);
460 BuildMI(*PredBB, NewMI, NewMI.getDebugLoc(),
728 for (MachineBasicBlock *PredBB : BB.predecessors()) {
729 if (PredBB->succ_size() > 1)
734 if (TII->analyzeBranch(*PredBB, PredTBB, PredFBB, PredCond))
750 for (MachineBasicBlock *PredBB : Preds) {
751 if (PredBB->hasEHPadSuccessor() || PredBB->mayHaveInlineAsmBr())
754 if (bothUsedInPHI(*PredBB, Succs))
759 if (TII->analyzeBranch(*PredBB, PredTBB, PredFBB, PredCond))
763 LLVM_DEBUG(dbgs() << "\nTail-duplicating into PredBB: " << *PredBB
767 MachineBasicBlock *NextBB = PredBB->getNextNode();
797 auto DL = PredBB->findBranchDebugLoc();
798 TII->removeBranch(*PredBB);
800 if (!PredBB->isSuccessor(NewTarget))
801 PredBB->replaceSuccessor(TailBB, NewTarget);
803 PredBB->removeSuccessor(TailBB, true);
804 assert(PredBB->succ_size() <= 1);
808 TII->insertBranch(*PredBB, PredTBB, PredFBB, PredCond, DL);
810 TDBBs.push_back(PredBB);
816 MachineBasicBlock *PredBB) {
818 if (PredBB->succ_size() > 1)
823 if (TII->analyzeBranch(*PredBB, PredTBB, PredFBB, PredCond))
829 // indirect target, we need to see if the edge from PredBB to TailBB is from
830 // an INLINEASM_BR in PredBB, and then also if that edge was from the
833 // the successor list in PredBB and predecessor list in TailBB.
875 for (MachineBasicBlock *PredBB : Preds) {
876 assert(TailBB != PredBB &&
879 if (!canTailDuplicate(TailBB, PredBB))
888 IsLayoutSuccessor = (ForcedLayoutPred == PredBB);
889 else if (PredBB->isLayoutSuccessor(TailBB) && PredBB->canFallThrough())
895 LLVM_DEBUG(dbgs() << "\nTail-duplicating into PredBB: " << *PredBB
898 TDBBs.push_back(PredBB);
900 // Remove PredBB's unconditional branch.
901 TII->removeBranch(*PredBB);
903 // Clone the contents of TailBB into PredBB.
909 // from PredBB.
910 processPHI(&MI, TailBB, PredBB, LocalVRMap, CopyInfos, UsedByPhi, true);
914 duplicateInstruction(&MI, TailBB, PredBB, LocalVRMap, UsedByPhi);
917 appendCopies(PredBB, CopyInfos, Copies);
922 PredBB->removeSuccessor(PredBB->succ_begin());
923 assert(PredBB->succ_empty() &&
926 PredBB->addSuccessor(Succ, MBPI->getEdgeProbability(TailBB, Succ));
930 PredBB->updateTerminator(TailBB->getNextNode());
970 // from PredBB.
1033 for (MachineBasicBlock *PredBB : Preds) {
1034 if (is_contained(TDBBs, PredBB))
1038 if (PredBB->succ_size() != 1)
1046 // from PredBB.
1047 processPHI(&MI, TailBB, PredBB, LocalVRMap, CopyInfos, UsedByPhi, false);
1049 appendCopies(PredBB, CopyInfos, Copies);