Lines Matching refs:LSRUse
841 class LSRUse;
854 const LSRUse &LU, const Formula &F);
857 const LSRUse &LU, const Formula &F);
904 const LSRUse &LU,
996 const LSRUse &LU, in RateFormula()
1202 class LSRUse { class
1250 LSRUse(KindType K, MemAccessTy AT) in LSRUse() function in __anonb19727160711::LSRUse
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()
1319 void LSRUse::RecomputeRegs(size_t LUIdx, RegUseTracker &RegUses) { in RecomputeRegs()
1334 void LSRUse::print(raw_ostream &OS) const { in print()
1368 void LSRUse::dump() const { in dump()
1373 LSRUse::KindType Kind, MemAccessTy AccessTy, in isAMCompletelyFolded()
1377 case LSRUse::Address: in isAMCompletelyFolded()
1381 case LSRUse::ICmpZero: in isAMCompletelyFolded()
1412 case LSRUse::Basic: in isAMCompletelyFolded()
1416 case LSRUse::Special: in isAMCompletelyFolded()
1426 LSRUse::KindType Kind, MemAccessTy AccessTy, in isAMCompletelyFolded()
1447 LSRUse::KindType Kind, MemAccessTy AccessTy, in isAMCompletelyFolded()
1463 int64_t MaxOffset, LSRUse::KindType Kind, in isLegalUse()
1477 int64_t MaxOffset, LSRUse::KindType Kind, in isLegalUse()
1484 const LSRUse &LU, const Formula &F) { in isAMCompletelyFolded()
1491 const LSRUse &LU, const Formula &F) { in getScalingFactorCost()
1502 case LSRUse::Address: { in getScalingFactorCost()
1515 case LSRUse::ICmpZero: in getScalingFactorCost()
1516 case LSRUse::Basic: in getScalingFactorCost()
1517 case LSRUse::Special: in getScalingFactorCost()
1527 LSRUse::KindType Kind, MemAccessTy AccessTy, in isAlwaysFoldable()
1535 int64_t Scale = Kind == LSRUse::ICmpZero ? -1 : 1; in isAlwaysFoldable()
1550 int64_t MaxOffset, LSRUse::KindType Kind, in isAlwaysFoldable()
1569 int64_t Scale = Kind == LSRUse::ICmpZero ? -1 : 1; in isAlwaysFoldable()
1666 SmallVector<LSRUse, 16> Uses;
1703 typedef DenseMap<LSRUse::SCEVUseKindPair, size_t> UseMapTy;
1706 bool reconcileNewOffset(LSRUse &LU, int64_t NewOffset, bool HasBaseReg,
1707 LSRUse::KindType Kind, MemAccessTy AccessTy);
1709 std::pair<size_t, int64_t> getUse(const SCEV *&Expr, LSRUse::KindType Kind,
1712 void DeleteUse(LSRUse &LU, size_t LUIdx);
1714 LSRUse *FindUseWithSimilarFormula(const Formula &F, const LSRUse &OrigLU);
1716 void InsertInitialFormula(const SCEV *S, LSRUse &LU, size_t LUIdx);
1717 void InsertSupplementalFormula(const SCEV *S, LSRUse &LU, size_t LUIdx);
1719 bool InsertFormula(LSRUse &LU, unsigned LUIdx, const Formula &F);
1723 void GenerateReassociations(LSRUse &LU, unsigned LUIdx, Formula Base,
1726 void GenerateReassociationsImpl(LSRUse &LU, unsigned LUIdx,
1729 void GenerateCombinations(LSRUse &LU, unsigned LUIdx, Formula Base);
1730 void GenerateSymbolicOffsetsImpl(LSRUse &LU, unsigned LUIdx,
1733 void GenerateSymbolicOffsets(LSRUse &LU, unsigned LUIdx, Formula Base);
1734 void GenerateConstantOffsetsImpl(LSRUse &LU, unsigned LUIdx,
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);
1768 const LSRUse &LU,
2222 bool LSRInstance::reconcileNewOffset(LSRUse &LU, int64_t NewOffset, in reconcileNewOffset()
2223 bool HasBaseReg, LSRUse::KindType Kind, in reconcileNewOffset()
2238 if (Kind == LSRUse::Address) { in reconcileNewOffset()
2269 LSRUse::KindType Kind, in getUse()
2282 UseMap.insert(std::make_pair(LSRUse::SCEVUseKindPair(Expr, Kind), 0)); in getUse()
2286 LSRUse &LU = Uses[LUIdx]; in getUse()
2295 Uses.push_back(LSRUse(Kind, AccessTy)); in getUse()
2296 LSRUse &LU = Uses[LUIdx]; in getUse()
2309 void LSRInstance::DeleteUse(LSRUse &LU, size_t LUIdx) { in DeleteUse()
2320 LSRUse *
2322 const LSRUse &OrigLU) { in FindUseWithSimilarFormula()
2325 LSRUse &LU = Uses[LUIdx]; in FindUseWithSimilarFormula()
2332 LU.Kind != LSRUse::ICmpZero && in FindUseWithSimilarFormula()
2839 if (!isAlwaysFoldable(TTI, LSRUse::Address, AccessTy, /*BaseGV=*/nullptr, in canFoldIVIncExpr()
2966 LSRUse::KindType Kind = LSRUse::Basic; in CollectFixupsAndInitialFormulae()
2969 Kind = LSRUse::Address; in CollectFixupsAndInitialFormulae()
3000 Kind = LSRUse::ICmpZero; in CollectFixupsAndInitialFormulae()
3016 LSRUse &LU = Uses[LF.LUIdx]; in CollectFixupsAndInitialFormulae()
3036 LSRInstance::InsertInitialFormula(const SCEV *S, LSRUse &LU, size_t LUIdx) { in InsertInitialFormula()
3051 LSRUse &LU, size_t LUIdx) { in InsertSupplementalFormula()
3069 bool LSRInstance::InsertFormula(LSRUse &LU, unsigned LUIdx, const Formula &F) { in InsertFormula()
3156 S, LSRUse::Basic, MemAccessTy()); in CollectLoopInvariantFixupsAndFormulae()
3159 LSRUse &LU = Uses[LF.LUIdx]; in CollectLoopInvariantFixupsAndFormulae()
3235 void LSRInstance::GenerateReassociationsImpl(LSRUse &LU, unsigned LUIdx, in GenerateReassociationsImpl()
3318 void LSRInstance::GenerateReassociations(LSRUse &LU, unsigned LUIdx, in GenerateReassociations()
3335 void LSRInstance::GenerateCombinations(LSRUse &LU, unsigned LUIdx, in GenerateCombinations()
3368 void LSRInstance::GenerateSymbolicOffsetsImpl(LSRUse &LU, unsigned LUIdx, in GenerateSymbolicOffsetsImpl()
3387 void LSRInstance::GenerateSymbolicOffsets(LSRUse &LU, unsigned LUIdx, in GenerateSymbolicOffsets()
3401 LSRUse &LU, unsigned LUIdx, const Formula &Base, in GenerateConstantOffsetsImpl()
3443 void LSRInstance::GenerateConstantOffsets(LSRUse &LU, unsigned LUIdx, in GenerateConstantOffsets()
3461 void LSRInstance::GenerateICmpZeroScales(LSRUse &LU, unsigned LUIdx, in GenerateICmpZeroScales()
3463 if (LU.Kind != LSRUse::ICmpZero) return; in GenerateICmpZeroScales()
3547 void LSRInstance::GenerateScales(LSRUse &LU, unsigned LUIdx, Formula Base) { in GenerateScales()
3568 if (LU.Kind == LSRUse::Basic && in GenerateScales()
3569 isLegalUse(TTI, LU.MinOffset, LU.MaxOffset, LSRUse::Special, in GenerateScales()
3572 LU.Kind = LSRUse::Special; in GenerateScales()
3578 if (LU.Kind == LSRUse::ICmpZero && in GenerateScales()
3607 void LSRInstance::GenerateTruncates(LSRUse &LU, unsigned LUIdx, Formula Base) { in GenerateTruncates()
3742 LSRUse &LU = Uses[LUIdx]; in GenerateCrossUseConstantOffsets()
3830 LSRUse &LU = Uses[LUIdx]; in GenerateAllReuseFormulae()
3837 LSRUse &LU = Uses[LUIdx]; in GenerateAllReuseFormulae()
3848 LSRUse &LU = Uses[LUIdx]; in GenerateAllReuseFormulae()
3877 LSRUse &LU = Uses[LUIdx]; in FilterOutUndesirableDedicatedRegisters()
3969 for (const LSRUse &LU : Uses) { in EstimateSearchSpaceComplexity()
3994 LSRUse &LU = Uses[LUIdx]; in NarrowSearchSpaceByDetectingSupersets()
4058 LSRUse &LU = Uses[LUIdx]; in NarrowSearchSpaceByCollapsingUnrolledCode()
4063 LSRUse *LUThatHas = FindUseWithSimilarFormula(F, LU); in NarrowSearchSpaceByCollapsingUnrolledCode()
4177 LSRUse &LU = Uses[LUIdx]; in NarrowSearchSpaceByPickingWinnerRegs()
4231 const LSRUse &LU = Uses[Workspace.size()]; in SolveRecurse()
4383 const LSRUse &LU, in AdjustInsertPositionForExpand()
4391 if (LU.Kind == LSRUse::ICmpZero) in AdjustInsertPositionForExpand()
4450 const LSRUse &LU = Uses[LF.LUIdx]; in Expand()
4502 if (LU.Kind == LSRUse::ICmpZero) { in Expand()
4521 if (!Ops.empty() && LU.Kind == LSRUse::Address && in Expand()
4557 if (LU.Kind == LSRUse::ICmpZero) { in Expand()
4593 if (LU.Kind == LSRUse::ICmpZero) { in Expand()
4731 if (Uses[LF.LUIdx].Kind == LSRUse::ICmpZero) in Rewrite()
4868 for (const LSRUse &LU : Uses) { in LSRInstance()
4910 for (const LSRUse &LU : Uses) { in print_uses()