• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/Scalar/

Lines Matching defs:Solver

1600 static bool tryToReplaceWithConstant(SCCPSolver &Solver, Value *V) {
1603 std::vector<ValueLatticeElement> IVs = Solver.getStructLatticeValueFor(V);
1612 ? Solver.getConstant(V)
1617 const ValueLatticeElement &IV = Solver.getLatticeValueFor(V);
1622 isConstant(IV) ? Solver.getConstant(IV) : UndefValue::get(V->getType());
1634 Solver.AddMustTailCallee(F);
1648 static bool simplifyInstsInBlock(SCCPSolver &Solver, BasicBlock &BB,
1656 if (tryToReplaceWithConstant(Solver, &Inst)) {
1666 const ValueLatticeElement &IV = Solver.getLatticeValueFor(ExtOp);
1673 Solver.removeLatticeValueFor(&Inst);
1688 SCCPSolver Solver(
1693 Solver.MarkBlockExecutable(&F.front());
1697 Solver.markOverdefined(&AI);
1702 Solver.Solve();
1704 ResolvedUndefs = Solver.ResolvedUndefsIn(F);
1715 if (!Solver.isBlockExecutable(&BB)) {
1725 MadeChanges |= simplifyInstsInBlock(Solver, BB, InsertedValues,
1793 SCCPSolver &Solver) {
1795 if (!Solver.isArgumentTrackedFunction(&F))
1800 if (Solver.isMustTailCallee(&F)) {
1808 [&Solver](User *U) {
1810 !Solver.isBlockExecutable(cast<Instruction>(U)->getParent()))
1819 return all_of(Solver.getStructLatticeValueFor(U),
1824 return !isOverdefined(Solver.getLatticeValueFor(U));
1844 static void forceIndeterminateEdge(Instruction* I, SCCPSolver &Solver) {
1869 assert(Solver.isEdgeFeasible(I->getParent(), Dest) &&
1881 SCCPSolver Solver(DL, GetTLI, M.getContext());
1889 Solver.addAnalysis(F, getAnalysis(F));
1894 Solver.AddTrackedFunction(&F);
1899 Solver.AddArgumentTrackedFunction(&F);
1904 Solver.MarkBlockExecutable(&F.front());
1908 Solver.markOverdefined(&AI);
1917 Solver.TrackValueOfGlobalVariable(&G);
1922 Solver.Solve();
1927 if (Solver.ResolvedUndefsIn(F)) {
1930 Solver.Solve();
1946 if (Solver.isBlockExecutable(&F.front()))
1949 if (!AI->use_empty() && tryToReplaceWithConstant(Solver, &*AI)) {
1957 if (!Solver.isBlockExecutable(&BB)) {
1968 MadeChanges |= simplifyInstsInBlock(Solver, BB, InsertedValues,
1972 DomTreeUpdater DTU = Solver.getDTU(F);
1982 if (!Solver.isBlockExecutable(&F.front()))
2005 forceIndeterminateEdge(I, Solver);
2018 !Solver.isBlockExecutable(BI->getSuccessor(0))) {
2030 if (Solver.getPredicateInfoFor(Inst)) {
2055 for (const auto &I : Solver.getTrackedRetVals()) {
2059 findReturnsToZap(*F, ReturnsToZap, Solver);
2062 for (auto F : Solver.getMRVFunctionsTracked()) {
2066 if (Solver.isStructLatticeConstant(F, STy))
2067 findReturnsToZap(*F, ReturnsToZap, Solver);
2078 for (auto &I : make_early_inc_range(Solver.getTrackedGlobals())) {