Lines Matching refs:SuccToSinkTo
95 static bool IsAcceptableTarget(Instruction *Inst, BasicBlock *SuccToSinkTo, in IsAcceptableTarget() argument
98 assert(SuccToSinkTo && "Candidate sink target is null"); in IsAcceptableTarget()
102 if (Inst->getParent() == SuccToSinkTo) in IsAcceptableTarget()
107 if (SuccToSinkTo->getTerminator()->isExceptionalTerminator()) in IsAcceptableTarget()
114 if (SuccToSinkTo->getUniquePredecessor() != Inst->getParent()) { in IsAcceptableTarget()
122 if (!DT.dominates(Inst->getParent(), SuccToSinkTo)) in IsAcceptableTarget()
126 Loop *succ = LI.getLoopFor(SuccToSinkTo); in IsAcceptableTarget()
134 return AllUsesDominatedByBlock(Inst, SuccToSinkTo, DT); in IsAcceptableTarget()
163 BasicBlock *SuccToSinkTo = nullptr; in SinkInstruction() local
170 I != E && SuccToSinkTo == nullptr; ++I) { in SinkInstruction()
175 SuccToSinkTo = Candidate; in SinkInstruction()
181 E = succ_end(Inst->getParent()); I != E && !SuccToSinkTo; ++I) { in SinkInstruction()
183 SuccToSinkTo = *I; in SinkInstruction()
187 if (!SuccToSinkTo) in SinkInstruction()
192 SuccToSinkTo->printAsOperand(dbgs(), false); dbgs() << ")\n"); in SinkInstruction()
195 Inst->moveBefore(&*SuccToSinkTo->getFirstInsertionPt()); in SinkInstruction()