Lines Matching refs:LSRUse

836 class LSRUse;
849 const LSRUse &LU, const Formula &F);
852 const LSRUse &LU, const Formula &F);
899 const LSRUse &LU,
991 const LSRUse &LU, in RateFormula()
1205 class LSRUse { class
1254 LSRUse(KindType K, Type *T) : Kind(K), AccessTy(T), in LSRUse() function in __anonb19727160711::LSRUse
1274 bool LSRUse::HasFormulaWithSameRegs(const Formula &F) const { in HasFormulaWithSameRegs()
1285 bool LSRUse::InsertFormula(const Formula &F) { in InsertFormula()
1320 void LSRUse::DeleteFormula(Formula &F) { in DeleteFormula()
1327 void LSRUse::RecomputeRegs(size_t LUIdx, RegUseTracker &RegUses) { in RecomputeRegs()
1342 void LSRUse::print(raw_ostream &OS) const { in print()
1373 void LSRUse::dump() const { in dump()
1379 LSRUse::KindType Kind, Type *AccessTy, in isAMCompletelyFolded()
1383 case LSRUse::Address: in isAMCompletelyFolded()
1389 case LSRUse::ICmpZero: in isAMCompletelyFolded()
1420 case LSRUse::Basic: in isAMCompletelyFolded()
1424 case LSRUse::Special: in isAMCompletelyFolded()
1434 LSRUse::KindType Kind, Type *AccessTy, in isAMCompletelyFolded()
1455 LSRUse::KindType Kind, Type *AccessTy, in isAMCompletelyFolded()
1471 int64_t MaxOffset, LSRUse::KindType Kind, Type *AccessTy, in isLegalUse()
1485 int64_t MaxOffset, LSRUse::KindType Kind, Type *AccessTy, in isLegalUse()
1492 const LSRUse &LU, const Formula &F) { in isAMCompletelyFolded()
1499 const LSRUse &LU, const Formula &F) { in getScalingFactorCost()
1510 case LSRUse::Address: { in getScalingFactorCost()
1525 case LSRUse::ICmpZero: in getScalingFactorCost()
1526 case LSRUse::Basic: in getScalingFactorCost()
1527 case LSRUse::Special: in getScalingFactorCost()
1537 LSRUse::KindType Kind, Type *AccessTy, in isAlwaysFoldable()
1545 int64_t Scale = Kind == LSRUse::ICmpZero ? -1 : 1; in isAlwaysFoldable()
1560 int64_t MaxOffset, LSRUse::KindType Kind, in isAlwaysFoldable()
1578 int64_t Scale = Kind == LSRUse::ICmpZero ? -1 : 1; in isAlwaysFoldable()
1677 SmallVector<LSRUse, 16> Uses;
1714 typedef DenseMap<LSRUse::SCEVUseKindPair, size_t> UseMapTy;
1717 bool reconcileNewOffset(LSRUse &LU, int64_t NewOffset, bool HasBaseReg,
1718 LSRUse::KindType Kind, Type *AccessTy);
1721 LSRUse::KindType Kind,
1724 void DeleteUse(LSRUse &LU, size_t LUIdx);
1726 LSRUse *FindUseWithSimilarFormula(const Formula &F, const LSRUse &OrigLU);
1728 void InsertInitialFormula(const SCEV *S, LSRUse &LU, size_t LUIdx);
1729 void InsertSupplementalFormula(const SCEV *S, LSRUse &LU, size_t LUIdx);
1731 bool InsertFormula(LSRUse &LU, unsigned LUIdx, const Formula &F);
1735 void GenerateReassociations(LSRUse &LU, unsigned LUIdx, Formula Base,
1738 void GenerateReassociationsImpl(LSRUse &LU, unsigned LUIdx,
1741 void GenerateCombinations(LSRUse &LU, unsigned LUIdx, Formula Base);
1742 void GenerateSymbolicOffsetsImpl(LSRUse &LU, unsigned LUIdx,
1745 void GenerateSymbolicOffsets(LSRUse &LU, unsigned LUIdx, Formula Base);
1746 void GenerateConstantOffsetsImpl(LSRUse &LU, unsigned LUIdx,
1750 void GenerateConstantOffsets(LSRUse &LU, unsigned LUIdx, Formula Base);
1751 void GenerateICmpZeroScales(LSRUse &LU, unsigned LUIdx, Formula Base);
1752 void GenerateScales(LSRUse &LU, unsigned LUIdx, Formula Base);
1753 void GenerateTruncates(LSRUse &LU, unsigned LUIdx, Formula Base);
1780 const LSRUse &LU,
2240 LSRInstance::reconcileNewOffset(LSRUse &LU, int64_t NewOffset, bool HasBaseReg, in reconcileNewOffset()
2241 LSRUse::KindType Kind, Type *AccessTy) { in reconcileNewOffset()
2255 if (Kind == LSRUse::Address && AccessTy != LU.AccessTy) in reconcileNewOffset()
2285 LSRUse::KindType Kind, Type *AccessTy) { in getUse()
2297 UseMap.insert(std::make_pair(LSRUse::SCEVUseKindPair(Expr, Kind), 0)); in getUse()
2301 LSRUse &LU = Uses[LUIdx]; in getUse()
2310 Uses.push_back(LSRUse(Kind, AccessTy)); in getUse()
2311 LSRUse &LU = Uses[LUIdx]; in getUse()
2324 void LSRInstance::DeleteUse(LSRUse &LU, size_t LUIdx) { in DeleteUse()
2335 LSRUse *
2337 const LSRUse &OrigLU) { in FindUseWithSimilarFormula()
2340 LSRUse &LU = Uses[LUIdx]; in FindUseWithSimilarFormula()
2347 LU.Kind != LSRUse::ICmpZero && in FindUseWithSimilarFormula()
2860 if (!isAlwaysFoldable(TTI, LSRUse::Address, in canFoldIVIncExpr()
2991 LSRUse::KindType Kind = LSRUse::Basic; in CollectFixupsAndInitialFormulae()
2994 Kind = LSRUse::Address; in CollectFixupsAndInitialFormulae()
3025 Kind = LSRUse::ICmpZero; in CollectFixupsAndInitialFormulae()
3041 LSRUse &LU = Uses[LF.LUIdx]; in CollectFixupsAndInitialFormulae()
3062 LSRInstance::InsertInitialFormula(const SCEV *S, LSRUse &LU, size_t LUIdx) { in InsertInitialFormula()
3077 LSRUse &LU, size_t LUIdx) { in InsertSupplementalFormula()
3097 bool LSRInstance::InsertFormula(LSRUse &LU, unsigned LUIdx, const Formula &F) { in InsertFormula()
3180 std::pair<size_t, int64_t> P = getUse(S, LSRUse::Basic, nullptr); in CollectLoopInvariantFixupsAndFormulae()
3183 LSRUse &LU = Uses[LF.LUIdx]; in CollectLoopInvariantFixupsAndFormulae()
3260 void LSRInstance::GenerateReassociationsImpl(LSRUse &LU, unsigned LUIdx, in GenerateReassociationsImpl()
3344 void LSRInstance::GenerateReassociations(LSRUse &LU, unsigned LUIdx, in GenerateReassociations()
3361 void LSRInstance::GenerateCombinations(LSRUse &LU, unsigned LUIdx, in GenerateCombinations()
3396 void LSRInstance::GenerateSymbolicOffsetsImpl(LSRUse &LU, unsigned LUIdx, in GenerateSymbolicOffsetsImpl()
3415 void LSRInstance::GenerateSymbolicOffsets(LSRUse &LU, unsigned LUIdx, in GenerateSymbolicOffsets()
3429 LSRUse &LU, unsigned LUIdx, const Formula &Base, in GenerateConstantOffsetsImpl()
3473 void LSRInstance::GenerateConstantOffsets(LSRUse &LU, unsigned LUIdx, in GenerateConstantOffsets()
3491 void LSRInstance::GenerateICmpZeroScales(LSRUse &LU, unsigned LUIdx, in GenerateICmpZeroScales()
3493 if (LU.Kind != LSRUse::ICmpZero) return; in GenerateICmpZeroScales()
3580 void LSRInstance::GenerateScales(LSRUse &LU, unsigned LUIdx, Formula Base) { in GenerateScales()
3604 if (LU.Kind == LSRUse::Basic && in GenerateScales()
3605 isLegalUse(TTI, LU.MinOffset, LU.MaxOffset, LSRUse::Special, in GenerateScales()
3608 LU.Kind = LSRUse::Special; in GenerateScales()
3614 if (LU.Kind == LSRUse::ICmpZero && in GenerateScales()
3643 void LSRInstance::GenerateTruncates(LSRUse &LU, unsigned LUIdx, Formula Base) { in GenerateTruncates()
3790 LSRUse &LU = Uses[LUIdx]; in GenerateCrossUseConstantOffsets()
3881 LSRUse &LU = Uses[LUIdx]; in GenerateAllReuseFormulae()
3888 LSRUse &LU = Uses[LUIdx]; in GenerateAllReuseFormulae()
3899 LSRUse &LU = Uses[LUIdx]; in GenerateAllReuseFormulae()
3928 LSRUse &LU = Uses[LUIdx]; in FilterOutUndesirableDedicatedRegisters()
4023 for (SmallVectorImpl<LSRUse>::const_iterator I = Uses.begin(), in EstimateSearchSpaceComplexity()
4050 LSRUse &LU = Uses[LUIdx]; in NarrowSearchSpaceByDetectingSupersets()
4115 LSRUse &LU = Uses[LUIdx]; in NarrowSearchSpaceByCollapsingUnrolledCode()
4122 LSRUse *LUThatHas = FindUseWithSimilarFormula(F, LU); in NarrowSearchSpaceByCollapsingUnrolledCode()
4241 LSRUse &LU = Uses[LUIdx]; in NarrowSearchSpaceByPickingWinnerRegs()
4295 const LSRUse &LU = Uses[Workspace.size()]; in SolveRecurse()
4455 const LSRUse &LU, in AdjustInsertPositionForExpand()
4463 if (LU.Kind == LSRUse::ICmpZero) in AdjustInsertPositionForExpand()
4523 const LSRUse &LU = Uses[LF.LUIdx]; in Expand()
4577 if (LU.Kind == LSRUse::ICmpZero) { in Expand()
4596 if (!Ops.empty() && LU.Kind == LSRUse::Address && in Expand()
4632 if (LU.Kind == LSRUse::ICmpZero) { in Expand()
4668 if (LU.Kind == LSRUse::ICmpZero) { in Expand()
4807 if (Uses[LF.LUIdx].Kind == LSRUse::ICmpZero) in Rewrite()
4952 for (SmallVectorImpl<LSRUse>::const_iterator I = Uses.begin(), E = Uses.end(); in LSRInstance()
4954 const LSRUse &LU = *I; in LSRInstance()
5001 for (SmallVectorImpl<LSRUse>::const_iterator I = Uses.begin(), in print_uses()
5003 const LSRUse &LU = *I; in print_uses()