Lines Matching refs:F

98     bool runOnFunction(Function &F) override;
101 bool runTRE(Function &F);
102 bool markTails(Function &F, bool &AllCallsAreTailCalls);
143 static bool CanTRE(Function &F) { in CanTRE() argument
145 for (auto &BB : F) { in CanTRE()
157 bool TailCallElim::runOnFunction(Function &F) { in runOnFunction() argument
158 if (skipOptnoneFunction(F)) in runOnFunction()
161 if (F.getFnAttribute("disable-tail-calls").getValueAsString() == "true") in runOnFunction()
165 bool Modified = markTails(F, AllCallsAreTailCalls); in runOnFunction()
167 Modified |= runTRE(F); in runOnFunction()
251 bool TailCallElim::markTails(Function &F, bool &AllCallsAreTailCalls) { in markTails() argument
252 if (F.callsFunctionThatReturnsTwice()) in markTails()
258 for (Argument &Arg : F.args()) { in markTails()
262 for (auto &BB : F) { in markTails()
294 BasicBlock *BB = &F.getEntryBlock(); in markTails()
325 F.getContext(), "tailcallelim", F, CI->getDebugLoc(), in markTails()
371 emitOptimizationRemark(F.getContext(), "tailcallelim", F, in markTails()
384 bool TailCallElim::runTRE(Function &F) { in runTRE() argument
387 if (F.getFunctionType()->isVarArg()) return false; in runTRE()
389 TTI = &getAnalysis<TargetTransformInfoWrapperPass>().getTTI(F); in runTRE()
398 bool CanTRETailMarkedCall = CanTRE(F); in runTRE()
406 for (Function::iterator BBI = F.begin(), E = F.end(); BBI != E; /*in loop*/) { in runTRE()
428 if (Value *PNV = SimplifyInstruction(PN, F.getParent()->getDataLayout())) { in runTRE()
486 Function *F = CI->getParent()->getParent(); in isDynamicConstant() local
487 for (Function::arg_iterator AI = F->arg_begin(); &*AI != Arg; ++AI) in isDynamicConstant()
513 Function *F = CI->getParent()->getParent(); in getCommonReturnValue() local
516 for (Function::iterator BBI = F->begin(), E = F->end(); BBI != E; ++BBI) { in getCommonReturnValue()
569 Function *F = BB->getParent(); in FindTRECandidate() local
580 if (CI && CI->getCalledFunction() == F) in FindTRECandidate()
597 if (BB == &F->getEntryBlock() && in FindTRECandidate()
606 Function::arg_iterator FI = F->arg_begin(), in FindTRECandidate()
607 FE = F->arg_end(); in FindTRECandidate()
678 Function *F = BB->getParent(); in EliminateRecursiveTailCall() local
680 emitOptimizationRemark(F->getContext(), "tailcallelim", *F, CI->getDebugLoc(), in EliminateRecursiveTailCall()
686 OldEntry = &F->getEntryBlock(); in EliminateRecursiveTailCall()
687 BasicBlock *NewEntry = BasicBlock::Create(F->getContext(), "", F, OldEntry); in EliminateRecursiveTailCall()
708 for (Function::arg_iterator I = F->arg_begin(), E = F->arg_end(); in EliminateRecursiveTailCall()
755 if (P == &F->getEntryBlock()) in EliminateRecursiveTailCall()
779 for (Function::iterator BBI = F->begin(), E = F->end(); BBI != E; ++BBI) in EliminateRecursiveTailCall()