Lines Matching defs:SuccToSinkTo
65 static bool IsAcceptableTarget(Instruction *Inst, BasicBlock *SuccToSinkTo,
68 assert(SuccToSinkTo && "Candidate sink target is null");
71 if (SuccToSinkTo->isEHPad())
78 if (SuccToSinkTo->getUniquePredecessor() != Inst->getParent()) {
87 if (!DT.dominates(Inst->getParent(), SuccToSinkTo))
91 Loop *succ = LI.getLoopFor(SuccToSinkTo);
124 // SuccToSinkTo - This is the successor to sink this instruction to, once we
126 BasicBlock *SuccToSinkTo = nullptr;
143 if (SuccToSinkTo)
144 SuccToSinkTo = DT.findNearestCommonDominator(SuccToSinkTo, UseBlock);
146 SuccToSinkTo = UseBlock;
148 if (!DT.dominates(BB, SuccToSinkTo))
152 if (SuccToSinkTo) {
155 while (SuccToSinkTo != BB &&
156 !IsAcceptableTarget(Inst, SuccToSinkTo, DT, LI))
157 SuccToSinkTo = DT.getNode(SuccToSinkTo)->getIDom()->getBlock();
158 if (SuccToSinkTo == BB)
159 SuccToSinkTo = nullptr;
163 if (!SuccToSinkTo)
168 SuccToSinkTo->printAsOperand(dbgs(), false); dbgs() << ")\n");
171 Inst->moveBefore(&*SuccToSinkTo->getFirstInsertionPt());