Lines Matching refs:Solution
1691 void SolveRecurse(SmallVectorImpl<const Formula *> &Solution,
1697 void Solve(SmallVectorImpl<const Formula *> &Solution) const;
1723 void ImplementSolution(const SmallVectorImpl<const Formula *> &Solution,
1867 /// This is a narrow solution to a specific, but acute, problem. For loops
2570 // Prune the solution space aggressively by checking that both IV operands
3772 // to an unsatisfactory solution. Passing LoserRegs into RateFormula here
4112 void LSRInstance::SolveRecurse(SmallVectorImpl<const Formula *> &Solution,
4131 // in-progress solution, consider it a requirement that a formula must
4173 SolveRecurse(Solution, SolutionCost, Workspace, NewCost,
4186 Solution = Workspace;
4194 /// Solution vector.
4195 void LSRInstance::Solve(SmallVectorImpl<const Formula *> &Solution) const {
4205 SolveRecurse(Solution, SolutionCost, Workspace, CurCost,
4207 if (Solution.empty()) {
4208 DEBUG(dbgs() << "\nNo Satisfactory Solution\n");
4214 "The chosen solution requires "; SolutionCost.print(dbgs());
4221 Solution[i]->print(dbgs());
4225 assert(Solution.size() == Uses.size() && "Malformed solution!");
4634 /// following the chosen solution.
4636 LSRInstance::ImplementSolution(const SmallVectorImpl<const Formula *> &Solution,
4662 Rewrite(Fixup, *Solution[Fixup.LUIdx], Rewriter, DeadInsts, P);
4753 SmallVector<const Formula *, 8> Solution;
4754 Solve(Solution);
4761 if (Solution.empty())
4778 ImplementSolution(Solution, P);