Lines Matching refs:F
50 static void findReturnsToZap(Function &F, in findReturnsToZap() argument
54 if (!Solver.isArgumentTrackedFunction(&F)) in findReturnsToZap()
57 if (Solver.mustPreserveReturn(&F)) { in findReturnsToZap()
60 << "Can't zap returns of the function : " << F.getName() in findReturnsToZap()
67 all_of(F.users(), in findReturnsToZap()
96 for (BasicBlock &BB : F) { in findReturnsToZap()
124 for (Function &F : M) { in runIPSCCP()
125 if (F.isDeclaration()) in runIPSCCP()
128 DominatorTree &DT = GetDT(F); in runIPSCCP()
129 AssumptionCache &AC = GetAC(F); in runIPSCCP()
130 Solver.addPredicateInfo(F, DT, AC); in runIPSCCP()
134 if (canTrackReturnsInterprocedurally(&F)) in runIPSCCP()
135 Solver.addTrackedFunction(&F); in runIPSCCP()
139 if (canTrackArgumentsInterprocedurally(&F)) { in runIPSCCP()
140 Solver.addArgumentTrackedFunction(&F); in runIPSCCP()
145 Solver.markBlockExecutable(&F.front()); in runIPSCCP()
147 for (Argument &AI : F.args()) in runIPSCCP()
171 for (Function &F : M) { in runIPSCCP()
172 if (F.isDeclaration()) in runIPSCCP()
177 if (Solver.isBlockExecutable(&F.front())) { in runIPSCCP()
179 for (Argument &Arg : F.args()) { in runIPSCCP()
197 F.getContext(), in runIPSCCP()
198 Attribute::getWithMemoryEffects(F.getContext(), ME)); in runIPSCCP()
201 F.setAttributes(UpdateAttrs(F.getAttributes())); in runIPSCCP()
202 for (User *U : F.users()) { in runIPSCCP()
204 if (!CB || CB->getCalledFunction() != &F) in runIPSCCP()
214 for (BasicBlock &BB : F) { in runIPSCCP()
221 if (&BB != &F.front()) in runIPSCCP()
230 DominatorTree *DT = FAM->getCachedResult<DominatorTreeAnalysis>(F); in runIPSCCP()
231 PostDominatorTree *PDT = FAM->getCachedResult<PostDominatorTreeAnalysis>(F); in runIPSCCP()
241 if (!Solver.isBlockExecutable(&F.front())) in runIPSCCP()
242 NumInstRemoved += changeToUnreachable(F.front().getFirstNonPHIOrDbg(), in runIPSCCP()
246 for (BasicBlock &BB : F) in runIPSCCP()
253 for (BasicBlock &BB : F) { in runIPSCCP()
281 Function *F = I.first; in runIPSCCP() local
295 if (F->hasRetAttribute(Attribute::Range)) in runIPSCCP()
298 F->addRangeRetAttr(CR); in runIPSCCP()
301 if (F->getReturnType()->isVoidTy()) in runIPSCCP()
304 findReturnsToZap(*F, ReturnsToZap, Solver); in runIPSCCP()
307 for (auto *F : Solver.getMRVFunctionsTracked()) { in runIPSCCP() local
308 assert(F->getReturnType()->isStructTy() && in runIPSCCP()
310 StructType *STy = cast<StructType>(F->getReturnType()); in runIPSCCP()
311 if (Solver.isStructLatticeConstant(F, STy)) in runIPSCCP()
312 findReturnsToZap(*F, ReturnsToZap, Solver); in runIPSCCP()
318 Function *F = RI->getParent()->getParent(); in runIPSCCP() local
319 RI->setOperand(0, PoisonValue::get(F->getReturnType())); in runIPSCCP()
321 FuncZappedReturn.insert(F); in runIPSCCP()
330 for (Function *F : FuncZappedReturn) { in runIPSCCP()
331 for (Argument &A : F->args()) in runIPSCCP()
332 F->removeParamAttr(A.getArgNo(), Attribute::Returned); in runIPSCCP()
333 F->removeRetAttrs(UBImplyingAttributes); in runIPSCCP()
334 for (Use &U : F->uses()) { in runIPSCCP()
386 auto GetTLI = [&FAM](Function &F) -> const TargetLibraryInfo & { in run() argument
387 return FAM.getResult<TargetLibraryAnalysis>(F); in run()
389 auto GetTTI = [&FAM](Function &F) -> TargetTransformInfo & { in run() argument
390 return FAM.getResult<TargetIRAnalysis>(F); in run()
392 auto GetAC = [&FAM](Function &F) -> AssumptionCache & { in run() argument
393 return FAM.getResult<AssumptionAnalysis>(F); in run()
395 auto GetDT = [&FAM](Function &F) -> DominatorTree & { in run() argument
396 return FAM.getResult<DominatorTreeAnalysis>(F); in run()
398 auto GetBFI = [&FAM](Function &F) -> BlockFrequencyInfo & { in run() argument
399 return FAM.getResult<BlockFrequencyAnalysis>(F); in run()