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()
148 for (Argument &AI : F.args()) in runIPSCCP()
172 for (Function &F : M) { in runIPSCCP()
173 if (F.isDeclaration()) in runIPSCCP()
178 if (Solver.isBlockExecutable(&F.front())) { in runIPSCCP()
180 for (Argument &Arg : F.args()) { in runIPSCCP()
198 F.getContext(), in runIPSCCP()
199 Attribute::getWithMemoryEffects(F.getContext(), ME)); in runIPSCCP()
202 F.setAttributes(UpdateAttrs(F.getAttributes())); in runIPSCCP()
203 for (User *U : F.users()) { in runIPSCCP()
205 if (!CB || CB->getCalledFunction() != &F) in runIPSCCP()
215 for (BasicBlock &BB : F) { in runIPSCCP()
222 if (&BB != &F.front()) in runIPSCCP()
231 DominatorTree *DT = FAM->getCachedResult<DominatorTreeAnalysis>(F); in runIPSCCP()
232 PostDominatorTree *PDT = FAM->getCachedResult<PostDominatorTreeAnalysis>(F); in runIPSCCP()
242 if (!Solver.isBlockExecutable(&F.front())) in runIPSCCP()
243 NumInstRemoved += changeToUnreachable(F.front().getFirstNonPHIOrDbg(), in runIPSCCP()
247 for (BasicBlock &BB : F) in runIPSCCP()
254 for (BasicBlock &BB : F) { in runIPSCCP()
282 Function *F = I.first; in runIPSCCP() local
294 for (User *User : F->users()) { in runIPSCCP()
296 if (!CB || CB->getCalledFunction() != F) in runIPSCCP()
313 if (F->getReturnType()->isVoidTy()) in runIPSCCP()
316 findReturnsToZap(*F, ReturnsToZap, Solver); in runIPSCCP()
319 for (auto *F : Solver.getMRVFunctionsTracked()) { in runIPSCCP() local
320 assert(F->getReturnType()->isStructTy() && in runIPSCCP()
322 StructType *STy = cast<StructType>(F->getReturnType()); in runIPSCCP()
323 if (Solver.isStructLatticeConstant(F, STy)) in runIPSCCP()
324 findReturnsToZap(*F, ReturnsToZap, Solver); in runIPSCCP()
330 Function *F = RI->getParent()->getParent(); in runIPSCCP() local
331 RI->setOperand(0, UndefValue::get(F->getReturnType())); in runIPSCCP()
333 FuncZappedReturn.insert(F); in runIPSCCP()
342 for (Function *F : FuncZappedReturn) { in runIPSCCP()
343 for (Argument &A : F->args()) in runIPSCCP()
344 F->removeParamAttr(A.getArgNo(), Attribute::Returned); in runIPSCCP()
345 F->removeRetAttrs(UBImplyingAttributes); in runIPSCCP()
346 for (Use &U : F->uses()) { in runIPSCCP()
398 auto GetTLI = [&FAM](Function &F) -> const TargetLibraryInfo & { in run() argument
399 return FAM.getResult<TargetLibraryAnalysis>(F); in run()
401 auto GetTTI = [&FAM](Function &F) -> TargetTransformInfo & { in run() argument
402 return FAM.getResult<TargetIRAnalysis>(F); in run()
404 auto GetAC = [&FAM](Function &F) -> AssumptionCache & { in run() argument
405 return FAM.getResult<AssumptionAnalysis>(F); in run()
407 auto GetDT = [&FAM](Function &F) -> DominatorTree & { in run() argument
408 return FAM.getResult<DominatorTreeAnalysis>(F); in run()
410 auto GetBFI = [&FAM](Function &F) -> BlockFrequencyInfo & { in run() argument
411 return FAM.getResult<BlockFrequencyAnalysis>(F); in run()