Lines Matching defs:Solution
1559 void SolveRecurse(SmallVectorImpl<const Formula *> &Solution,
1565 void Solve(SmallVectorImpl<const Formula *> &Solution) const;
1591 void ImplementSolution(const SmallVectorImpl<const Formula *> &Solution,
1738 /// This is a narrow solution to a specific, but acute, problem. For loops
2326 // Prune the solution space aggressively by checking that both IV operands
3616 // to an unsatisfactory solution. Passing LoserRegs into RateFormula here
3956 void LSRInstance::SolveRecurse(SmallVectorImpl<const Formula *> &Solution,
3975 // in-progress solution, consider it a requirement that a formula must
4016 SolveRecurse(Solution, SolutionCost, Workspace, NewCost,
4029 Solution = Workspace;
4037 /// Solution vector.
4038 void LSRInstance::Solve(SmallVectorImpl<const Formula *> &Solution) const {
4048 SolveRecurse(Solution, SolutionCost, Workspace, CurCost,
4050 if (Solution.empty()) {
4051 DEBUG(dbgs() << "\nNo Satisfactory Solution\n");
4057 "The chosen solution requires "; SolutionCost.print(dbgs());
4064 Solution[i]->print(dbgs());
4068 assert(Solution.size() == Uses.size() && "Malformed solution!");
4469 /// following the chosen solution.
4471 LSRInstance::ImplementSolution(const SmallVectorImpl<const Formula *> &Solution,
4497 Rewrite(Fixup, *Solution[Fixup.LUIdx], Rewriter, DeadInsts, P);
4590 SmallVector<const Formula *, 8> Solution;
4591 Solve(Solution);
4598 if (Solution.empty())
4615 ImplementSolution(Solution, P);