Lines Matching defs:Solver
52 SCCPSolver &Solver) {
54 if (!Solver.isArgumentTrackedFunction(&F))
57 if (Solver.mustPreserveReturn(&F)) {
68 [&Solver](User *U) {
70 !Solver.isBlockExecutable(cast<Instruction>(U)->getParent()))
79 return all_of(Solver.getStructLatticeValueFor(U),
92 return !SCCPSolver::isOverdefined(Solver.getLatticeValueFor(U));
118 SCCPSolver Solver(DL, GetTLI, M.getContext());
119 FunctionSpecializer Specializer(Solver, M, FAM, GetBFI, GetTLI, GetTTI,
130 Solver.addPredicateInfo(F, DT, AC);
135 Solver.addTrackedFunction(&F);
140 Solver.addArgumentTrackedFunction(&F);
145 Solver.markBlockExecutable(&F.front());
148 Solver.trackValueOfArgument(&AI);
157 Solver.trackValueOfGlobalVariable(&G);
161 Solver.solveWhileResolvedUndefsIn(M);
177 if (Solver.isBlockExecutable(&F.front())) {
180 if (!Arg.use_empty() && Solver.tryToReplaceWithConstant(&Arg)) {
215 if (!Solver.isBlockExecutable(&BB)) {
226 MadeChanges |= Solver.simplifyInstsInBlock(
241 if (!Solver.isBlockExecutable(&F.front()))
247 MadeChanges |= Solver.removeNonFeasibleEdges(&BB, DTU, NewUnreachableBB);
255 if (Solver.getPredicateInfoFor(&Inst)) {
280 Solver.inferReturnAttributes();
281 Solver.inferArgAttributes();
282 for (const auto &[F, ReturnValue] : Solver.getTrackedRetVals()) {
286 findReturnsToZap(*F, ReturnsToZap, Solver);
289 for (auto *F : Solver.getMRVFunctionsTracked()) {
293 if (Solver.isStructLatticeConstant(F, STy))
294 findReturnsToZap(*F, ReturnsToZap, Solver);
335 for (const auto &I : make_early_inc_range(Solver.getTrackedGlobals())) {