Lines Matching refs:Candidate
134 struct Candidate { struct in __anon1b45effc0111::StraightLineStrengthReduce
142 Candidate() = default;
143 Candidate(Kind CT, const SCEV *B, ConstantInt *Idx, Value *S, in Candidate() function
176 Candidate *Basis = nullptr; argument
184 bool isBasisFor(const Candidate &Basis, const Candidate &C);
187 bool isFoldable(const Candidate &C, TargetTransformInfo *TTI,
192 bool isSimplestForm(const Candidate &C);
224 void allocateCandidatesAndFindBasis(Candidate::Kind CT, const SCEV *B,
229 void rewriteCandidateWithBasis(const Candidate &C, const Candidate &Basis);
241 static Value *emitBump(const Candidate &Basis, const Candidate &C,
249 std::list<Candidate> Candidates;
273 bool StraightLineStrengthReduce::isBasisFor(const Candidate &Basis, in isBasisFor()
274 const Candidate &C) { in isBasisFor()
302 bool StraightLineStrengthReduce::isFoldable(const Candidate &C, in isFoldable()
305 if (C.CandidateKind == Candidate::Add) in isFoldable()
307 if (C.CandidateKind == Candidate::GEP) in isFoldable()
323 bool StraightLineStrengthReduce::isSimplestForm(const Candidate &C) { in isSimplestForm()
324 if (C.CandidateKind == Candidate::Add) { in isSimplestForm()
328 if (C.CandidateKind == Candidate::Mul) { in isSimplestForm()
332 if (C.CandidateKind == Candidate::GEP) { in isSimplestForm()
348 Candidate::Kind CT, const SCEV *B, ConstantInt *Idx, Value *S, in allocateCandidatesAndFindBasis()
350 Candidate C(CT, B, Idx, S, I); in allocateCandidatesAndFindBasis()
417 allocateCandidatesAndFindBasis(Candidate::Add, SE->getSCEV(LHS), Idx, S, I); in allocateCandidatesAndFindBasisForAdd()
422 allocateCandidatesAndFindBasis(Candidate::Add, SE->getSCEV(LHS), Idx, S, I); in allocateCandidatesAndFindBasisForAdd()
426 allocateCandidatesAndFindBasis(Candidate::Add, SE->getSCEV(LHS), One, RHS, in allocateCandidatesAndFindBasisForAdd()
450 allocateCandidatesAndFindBasis(Candidate::Mul, SE->getSCEV(B), Idx, RHS, I); in allocateCandidatesAndFindBasisForMul()
456 allocateCandidatesAndFindBasis(Candidate::Mul, SE->getSCEV(B), Idx, RHS, I); in allocateCandidatesAndFindBasisForMul()
460 allocateCandidatesAndFindBasis(Candidate::Mul, SE->getSCEV(LHS), Zero, RHS, in allocateCandidatesAndFindBasisForMul()
491 allocateCandidatesAndFindBasis(Candidate::GEP, B, ScaledIdx, S, I); in allocateCandidatesAndFindBasisForGEP()
582 Value *StraightLineStrengthReduce::emitBump(const Candidate &Basis, in emitBump()
583 const Candidate &C, in emitBump()
592 if (Basis.CandidateKind == Candidate::GEP) { in emitBump()
634 const Candidate &C, const Candidate &Basis) { in rewriteCandidateWithBasis()
653 case Candidate::Add: in rewriteCandidateWithBasis()
654 case Candidate::Mul: { in rewriteCandidateWithBasis()
677 case Candidate::GEP: in rewriteCandidateWithBasis()
738 const Candidate &C = Candidates.back(); in runOnFunction()