Home | History | Annotate | Download | only in Scalar

Lines Matching refs:Ret

495 static bool eliminateRecursiveTailCall(CallInst *CI, ReturnInst *Ret,
518 for (++BBI; &*BBI != Ret; ++BBI) {
539 if (Ret->getNumOperands() == 1 && Ret->getReturnValue() != CI &&
540 !isa<UndefValue>(Ret->getReturnValue()) &&
546 if (!isDynamicConstant(Ret->getReturnValue(), CI, Ret))
550 AccumulatorRecursionEliminationInitVal = getCommonReturnValue(Ret, CI);
555 BasicBlock *BB = Ret->getParent();
650 AccPN->addIncoming(Ret->getReturnValue(), BB);
663 // ret instructions, replacing them with an unconditional branch.
664 BranchInst *NewBI = BranchInst::Create(OldEntry, Ret);
667 BB->getInstList().erase(Ret); // Remove return.
673 static bool foldReturnAndProcessPred(BasicBlock *BB, ReturnInst *Ret,
700 ReturnInst *RI = FoldReturnIntoUncondBranch(Ret, BB, Pred);
704 // because the ret instruction in there is still using a value which
720 static bool processReturningBlock(ReturnInst *Ret, BasicBlock *&OldEntry,
725 CallInst *CI = findTRECandidate(Ret, CannotTailCallElimCallsMarkedTail, TTI);
729 return eliminateRecursiveTailCall(CI, Ret, OldEntry, TailCallsAreMarkedTail,
766 if (ReturnInst *Ret = dyn_cast<ReturnInst>(BB->getTerminator())) {
768 processReturningBlock(Ret, OldEntry, TailCallsAreMarkedTail,
770 if (!Change && BB->getFirstNonPHIOrDbg() == Ret)
772 foldReturnAndProcessPred(BB, Ret, OldEntry, TailCallsAreMarkedTail,