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()
94 for (BasicBlock &BB : F) { in findReturnsToZap()
122 for (Function &F : M) { in runIPSCCP()
123 if (F.isDeclaration()) in runIPSCCP()
126 DominatorTree &DT = GetDT(F); in runIPSCCP()
127 AssumptionCache &AC = GetAC(F); in runIPSCCP()
128 Solver.addPredicateInfo(F, DT, AC); in runIPSCCP()
132 if (canTrackReturnsInterprocedurally(&F)) in runIPSCCP()
133 Solver.addTrackedFunction(&F); in runIPSCCP()
137 if (canTrackArgumentsInterprocedurally(&F)) { in runIPSCCP()
138 Solver.addArgumentTrackedFunction(&F); in runIPSCCP()
143 Solver.markBlockExecutable(&F.front()); in runIPSCCP()
145 for (Argument &AI : F.args()) in runIPSCCP()
169 for (Function &F : M) { in runIPSCCP()
170 if (F.isDeclaration()) in runIPSCCP()
175 if (Solver.isBlockExecutable(&F.front())) { in runIPSCCP()
177 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 Solver.removeSSACopies(F); in runIPSCCP()
270 for (const auto &[F, ReturnValue] : Solver.getTrackedRetVals()) { in runIPSCCP()
271 assert(!F->getReturnType()->isVoidTy() && in runIPSCCP()
274 findReturnsToZap(*F, ReturnsToZap, Solver); in runIPSCCP()
277 for (auto *F : Solver.getMRVFunctionsTracked()) { in runIPSCCP() local
278 assert(F->getReturnType()->isStructTy() && in runIPSCCP()
280 StructType *STy = cast<StructType>(F->getReturnType()); in runIPSCCP()
281 if (Solver.isStructLatticeConstant(F, STy)) in runIPSCCP()
282 findReturnsToZap(*F, ReturnsToZap, Solver); in runIPSCCP()
288 Function *F = RI->getParent()->getParent(); in runIPSCCP() local
289 RI->setOperand(0, PoisonValue::get(F->getReturnType())); in runIPSCCP()
291 FuncZappedReturn.insert(F); in runIPSCCP()
300 for (Function *F : FuncZappedReturn) { in runIPSCCP()
301 for (Argument &A : F->args()) in runIPSCCP()
302 F->removeParamAttr(A.getArgNo(), Attribute::Returned); in runIPSCCP()
303 F->removeRetAttrs(UBImplyingAttributes); in runIPSCCP()
304 for (Use &U : F->uses()) { in runIPSCCP()
359 auto GetTLI = [&FAM](Function &F) -> const TargetLibraryInfo & { in run() argument
360 return FAM.getResult<TargetLibraryAnalysis>(F); in run()
362 auto GetTTI = [&FAM](Function &F) -> TargetTransformInfo & { in run() argument
363 return FAM.getResult<TargetIRAnalysis>(F); in run()
365 auto GetAC = [&FAM](Function &F) -> AssumptionCache & { in run() argument
366 return FAM.getResult<AssumptionAnalysis>(F); in run()
368 auto GetDT = [&FAM](Function &F) -> DominatorTree & { in run() argument
369 return FAM.getResult<DominatorTreeAnalysis>(F); in run()
371 auto GetBFI = [&FAM](Function &F) -> BlockFrequencyInfo & { in run() argument
372 return FAM.getResult<BlockFrequencyAnalysis>(F); in run()