Lines Matching refs:Formula
245 struct Formula { struct
279 Formula() in Formula() argument
361 void Formula::initialMatch(const SCEV *S, Loop *L, ScalarEvolution &SE) { in initialMatch()
383 bool Formula::isCanonical() const { in isCanonical()
395 void Formula::canonicalize() { in canonicalize()
416 bool Formula::unscale() { in unscale()
427 size_t Formula::getNumRegs() const { in getNumRegs()
433 Type *Formula::getType() const { in getType()
441 void Formula::deleteBaseReg(const SCEV *&S) { in deleteBaseReg()
448 bool Formula::referencesReg(const SCEV *S) const { in referencesReg()
455 bool Formula::hasRegsUsedByUsesOtherThan(size_t LUIdx, in hasRegsUsedByUsesOtherThan()
466 void Formula::print(raw_ostream &OS) const { in print()
503 void Formula::dump() const { in dump()
854 const LSRUse &LU, const Formula &F);
857 const LSRUse &LU, const Formula &F);
898 const Formula &F,
990 const Formula &F, in RateFormula()
1245 SmallVector<Formula, 12> Formulae;
1255 bool HasFormulaWithSameRegs(const Formula &F) const;
1256 bool InsertFormula(const Formula &F);
1257 void DeleteFormula(Formula &F);
1268 bool LSRUse::HasFormulaWithSameRegs(const Formula &F) const { in HasFormulaWithSameRegs()
1278 bool LSRUse::InsertFormula(const Formula &F) { in InsertFormula()
1312 void LSRUse::DeleteFormula(Formula &F) { in DeleteFormula()
1323 for (const Formula &F : Formulae) { in RecomputeRegs()
1448 const Formula &F) { in isAMCompletelyFolded()
1478 MemAccessTy AccessTy, const Formula &F) { in isLegalUse()
1484 const LSRUse &LU, const Formula &F) { in isAMCompletelyFolded()
1491 const LSRUse &LU, const Formula &F) { in getScalingFactorCost()
1714 LSRUse *FindUseWithSimilarFormula(const Formula &F, const LSRUse &OrigLU);
1718 void CountRegisters(const Formula &F, size_t LUIdx);
1719 bool InsertFormula(LSRUse &LU, unsigned LUIdx, const Formula &F);
1723 void GenerateReassociations(LSRUse &LU, unsigned LUIdx, Formula Base,
1727 const Formula &Base, unsigned Depth,
1729 void GenerateCombinations(LSRUse &LU, unsigned LUIdx, Formula Base);
1731 const Formula &Base, size_t Idx,
1733 void GenerateSymbolicOffsets(LSRUse &LU, unsigned LUIdx, Formula Base);
1735 const Formula &Base,
1738 void GenerateConstantOffsets(LSRUse &LU, unsigned LUIdx, Formula Base);
1739 void GenerateICmpZeroScales(LSRUse &LU, unsigned LUIdx, Formula Base);
1740 void GenerateScales(LSRUse &LU, unsigned LUIdx, Formula Base);
1741 void GenerateTruncates(LSRUse &LU, unsigned LUIdx, Formula Base);
1754 void SolveRecurse(SmallVectorImpl<const Formula *> &Solution,
1756 SmallVectorImpl<const Formula *> &Workspace,
1760 void Solve(SmallVectorImpl<const Formula *> &Solution) const;
1772 const Formula &F,
1777 const Formula &F,
1781 const Formula &F,
1784 void ImplementSolution(const SmallVectorImpl<const Formula *> &Solution);
2321 LSRInstance::FindUseWithSimilarFormula(const Formula &OrigF, in FindUseWithSimilarFormula()
2337 for (const Formula &F : LU.Formulae) { in FindUseWithSimilarFormula()
3041 Formula F; in InsertInitialFormula()
3052 Formula F; in InsertSupplementalFormula()
3060 void LSRInstance::CountRegisters(const Formula &F, size_t LUIdx) { in CountRegisters()
3069 bool LSRInstance::InsertFormula(LSRUse &LU, unsigned LUIdx, const Formula &F) { in InsertFormula()
3236 const Formula &Base, in GenerateReassociationsImpl()
3279 Formula F = Base; in GenerateReassociationsImpl()
3319 Formula Base, unsigned Depth) { in GenerateReassociations()
3336 Formula Base) { in GenerateCombinations()
3344 Formula F = Base; in GenerateCombinations()
3369 const Formula &Base, size_t Idx, in GenerateSymbolicOffsetsImpl()
3375 Formula F = Base; in GenerateSymbolicOffsetsImpl()
3388 Formula Base) { in GenerateSymbolicOffsets()
3401 LSRUse &LU, unsigned LUIdx, const Formula &Base, in GenerateConstantOffsetsImpl()
3405 Formula F = Base; in GenerateConstantOffsetsImpl()
3431 Formula F = Base; in GenerateConstantOffsetsImpl()
3444 Formula Base) { in GenerateConstantOffsets()
3462 Formula Base) { in GenerateICmpZeroScales()
3500 Formula F = Base; in GenerateICmpZeroScales()
3547 void LSRInstance::GenerateScales(LSRUse &LU, unsigned LUIdx, Formula Base) { in GenerateScales()
3592 Formula F = Base; in GenerateScales()
3607 void LSRInstance::GenerateTruncates(LSRUse &LU, unsigned LUIdx, Formula Base) { in GenerateTruncates()
3618 Formula F = Base; in GenerateTruncates()
3752 Formula F = LU.Formulae[L]; in GenerateCrossUseConstantOffsets()
3765 Formula NewF = F; in GenerateCrossUseConstantOffsets()
3790 Formula NewF = F; in GenerateCrossUseConstantOffsets()
3883 Formula &F = LU.Formulae[FIdx]; in FilterOutUndesirableDedicatedRegisters()
3924 Formula &Best = LU.Formulae[P.first->second]; in FilterOutUndesirableDedicatedRegisters()
3997 Formula &F = LU.Formulae[i]; in NarrowSearchSpaceByDetectingSupersets()
4004 Formula NewF = F; in NarrowSearchSpaceByDetectingSupersets()
4019 Formula NewF = F; in NarrowSearchSpaceByDetectingSupersets()
4059 for (const Formula &F : LU.Formulae) { in NarrowSearchSpaceByCollapsingUnrolledCode()
4097 Formula &F = LUThatHas->Formulae[i]; in NarrowSearchSpaceByCollapsingUnrolledCode()
4182 Formula &F = LU.Formulae[i]; in NarrowSearchSpaceByPickingWinnerRegs()
4215 void LSRInstance::SolveRecurse(SmallVectorImpl<const Formula *> &Solution, in SolveRecurse()
4217 SmallVectorImpl<const Formula *> &Workspace, in SolveRecurse()
4244 for (const Formula &F : LU.Formulae) { in SolveRecurse()
4294 void LSRInstance::Solve(SmallVectorImpl<const Formula *> &Solution) const { in Solve()
4295 SmallVector<const Formula *, 8> Workspace; in Solve()
4446 const Formula &F, in Expand()
4632 const Formula &F, in RewriteForPHI()
4706 const Formula &F, in Rewrite()
4743 const SmallVectorImpl<const Formula *> &Solution) { in ImplementSolution()
4855 SmallVector<const Formula *, 8> Solution; in LSRInstance()
4869 for (const Formula &F : LU.Formulae) in LSRInstance()
4914 for (const Formula &F : LU.Formulae) { in print_uses()