Lines Matching defs:SuccToSinkTo

260                               MachineBasicBlock *SuccToSinkTo,
1098 MachineBasicBlock *SuccToSinkTo,
1100 assert (SuccToSinkTo && "Invalid SinkTo Candidate BB");
1102 if (MBB == SuccToSinkTo)
1105 // It is profitable if SuccToSinkTo does not post dominate current block.
1106 if (!PDT->dominates(SuccToSinkTo, MBB))
1111 if (CI->getCycleDepth(MBB) > CI->getCycleDepth(SuccToSinkTo))
1118 if (UseBlock == SuccToSinkTo && !UseInst.isPHI())
1124 // If SuccToSinkTo post dominates then also it may be profitable if MI
1129 FindSuccToSinkTo(MI, SuccToSinkTo, BreakPHIEdge, AllSuccessors))
1130 return isProfitableToSinkTo(Reg, MI, SuccToSinkTo, MBB2, AllSuccessors);
1135 // a post dominate block SuccToSinkTo.
1156 // Users for the defs are all dominated by SuccToSinkTo.
1160 if (!AllUsesDominatedByBlock(Reg, SuccToSinkTo, MBB, BreakPHIEdge,
1179 *SuccToSinkTo)) {
1244 // SuccToSinkTo - This is the successor to sink this instruction to, once we
1246 MachineBasicBlock *SuccToSinkTo = nullptr;
1274 if (SuccToSinkTo) {
1278 if (!AllUsesDominatedByBlock(Reg, SuccToSinkTo, MBB,
1294 SuccToSinkTo = SuccBlock;
1303 if (!SuccToSinkTo)
1305 if (!isProfitableToSinkTo(Reg, MI, MBB, SuccToSinkTo, AllSuccessors))
1312 if (MBB == SuccToSinkTo)
1317 if (SuccToSinkTo && SuccToSinkTo->isEHPad())
1324 if (SuccToSinkTo && SuccToSinkTo->isInlineAsmBrIndirectTarget())
1327 if (SuccToSinkTo && !TII->isSafeToSink(MI, SuccToSinkTo, CI))
1330 return SuccToSinkTo;
1437 static void performSink(MachineInstr &MI, MachineBasicBlock &SuccToSinkTo,
1443 if (!SuccToSinkTo.empty() && InsertPos != SuccToSinkTo.end())
1451 SuccToSinkTo.splice(InsertPos, ParentBlock, MI,
1461 SuccToSinkTo.insert(InsertPos, NewDbgMI);
1680 MachineBasicBlock *SuccToSinkTo =
1684 if (!SuccToSinkTo)
1694 if (SuccToSinkTo->isLiveIn(Reg))
1698 LLVM_DEBUG(dbgs() << "Sink instr " << MI << "\tinto block " << *SuccToSinkTo);
1702 if (SuccToSinkTo->pred_size() > 1) {
1707 MI.mayLoad() ? hasStoreBetween(ParentBlock, SuccToSinkTo, MI) : true;
1715 if (!TryBreak && !DT->dominates(ParentBlock, SuccToSinkTo)) {
1721 if (!TryBreak && CI->getCycle(SuccToSinkTo) &&
1722 (!CI->getCycle(SuccToSinkTo)->isReducible() ||
1723 CI->getCycle(SuccToSinkTo)->getHeader() == SuccToSinkTo)) {
1736 PostponeSplitCriticalEdge(MI, ParentBlock, SuccToSinkTo, BreakPHIEdge);
1750 SuccToSinkTo, BreakPHIEdge);
1760 SuccToSinkTo->SkipPHIsAndLabels(SuccToSinkTo->begin());
1761 if (blockPrologueInterferes(SuccToSinkTo, InsertPos, MI, TRI, TII, MRI)) {
1794 SalvageUnsunkDebugUsersOfCopy(MI, SuccToSinkTo);
1796 performSink(MI, *SuccToSinkTo, InsertPos, DbgUsersToSink);