Lines Matching refs:BaseRegs
355 SmallVector<const SCEV *, 4> BaseRegs; member
455 BaseRegs.push_back(Sum); in initialMatch()
461 BaseRegs.push_back(Sum); in initialMatch()
472 return BaseRegs.size() <= 1; in isCanonical()
477 if (Scale == 1 && BaseRegs.empty()) in isCanonical()
488 find_if(make_range(BaseRegs.begin(), BaseRegs.end()), [&](const SCEV *S) { in isCanonical()
492 return I == BaseRegs.end(); in isCanonical()
506 assert(!BaseRegs.empty() && "1*reg => reg, should not be needed."); in canonicalize()
510 ScaledReg = BaseRegs.back(); in canonicalize()
511 BaseRegs.pop_back(); in canonicalize()
520 auto I = find_if(make_range(BaseRegs.begin(), BaseRegs.end()), in canonicalize()
525 if (I != BaseRegs.end()) in canonicalize()
538 BaseRegs.push_back(ScaledReg); in unscale()
546 if (BaseRegs.size() != 1 || ScaledReg) in hasZeroEnd()
554 return !!ScaledReg + BaseRegs.size(); in getNumRegs()
560 return !BaseRegs.empty() ? BaseRegs.front()->getType() : in getType()
568 if (&S != &BaseRegs.back()) in deleteBaseReg()
569 std::swap(S, BaseRegs.back()); in deleteBaseReg()
570 BaseRegs.pop_back(); in deleteBaseReg()
575 return S == ScaledReg || is_contained(BaseRegs, S); in referencesReg()
585 for (const SCEV *BaseReg : BaseRegs) in hasRegsUsedByUsesOtherThan()
602 for (const SCEV *BaseReg : BaseRegs) { in print()
606 if (HasBaseReg && BaseRegs.empty()) { in print()
609 } else if (!HasBaseReg && !BaseRegs.empty()) { in print()
1335 for (const SCEV *BaseReg : F.BaseRegs) { in RateFormula()
1509 SmallVector<const SCEV *, 4> Key = F.BaseRegs; in HasFormulaWithSameRegs()
1533 SmallVector<const SCEV *, 4> Key = F.BaseRegs; in InsertFormula()
1545 for (const SCEV *BaseReg : F.BaseRegs) in InsertFormula()
1553 Regs.insert(F.BaseRegs.begin(), F.BaseRegs.end()); in InsertFormula()
1574 Regs.insert(F.BaseRegs.begin(), F.BaseRegs.end()); in RecomputeRegs()
2627 if (F.BaseRegs == OrigF.BaseRegs && in FindUseWithSimilarFormula()
3360 F.BaseRegs.push_back(S); in InsertSupplementalFormula()
3370 for (const SCEV *BaseReg : F.BaseRegs) in CountRegisters()
3575 const SCEV *BaseReg = IsScaledReg ? Base.ScaledReg : Base.BaseRegs[Idx]; in GenerateReassociationsImpl()
3632 F.BaseRegs.erase(F.BaseRegs.begin() + Idx); in GenerateReassociationsImpl()
3636 F.BaseRegs[Idx] = InnerSum; in GenerateReassociationsImpl()
3646 F.BaseRegs.push_back(*J); in GenerateReassociationsImpl()
3671 for (size_t i = 0, e = Base.BaseRegs.size(); i != e; ++i) in GenerateReassociations()
3684 if (Base.BaseRegs.size() + (Base.Scale == 1) + in GenerateCombinations()
3693 NewBase.BaseRegs.clear(); in GenerateCombinations()
3695 for (const SCEV *BaseReg : Base.BaseRegs) { in GenerateCombinations()
3703 NewBase.BaseRegs.push_back(BaseReg); in GenerateCombinations()
3721 F.BaseRegs.push_back(Sum); in GenerateCombinations()
3747 const SCEV *G = IsScaledReg ? Base.ScaledReg : Base.BaseRegs[Idx]; in GenerateSymbolicOffsetsImpl()
3758 F.BaseRegs[Idx] = G; in GenerateSymbolicOffsetsImpl()
3768 for (size_t i = 0, e = Base.BaseRegs.size(); i != e; ++i) in GenerateSymbolicOffsets()
3794 F.deleteBaseReg(F.BaseRegs[Idx]); in GenerateConstantOffsetsImpl()
3799 F.BaseRegs[Idx] = NewG; in GenerateConstantOffsetsImpl()
3805 const SCEV *G = IsScaledReg ? Base.ScaledReg : Base.BaseRegs[Idx]; in GenerateConstantOffsetsImpl()
3843 F.BaseRegs[Idx] = G; in GenerateConstantOffsetsImpl()
3861 for (size_t i = 0, e = Base.BaseRegs.size(); i != e; ++i) in GenerateConstantOffsets()
3885 for (const SCEV *BaseReg : Base.BaseRegs) in GenerateICmpZeroScales()
3928 for (size_t i = 0, e = F.BaseRegs.size(); i != e; ++i) { in GenerateICmpZeroScales()
3929 F.BaseRegs[i] = SE.getMulExpr(F.BaseRegs[i], FactorS); in GenerateICmpZeroScales()
3930 if (getExactSDiv(F.BaseRegs[i], FactorS, SE) != Base.BaseRegs[i]) in GenerateICmpZeroScales()
3978 Base.HasBaseReg = Base.BaseRegs.size() > 1; in GenerateScales()
3998 for (size_t i = 0, e = Base.BaseRegs.size(); i != e; ++i) { in GenerateScales()
3999 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Base.BaseRegs[i]); in GenerateScales()
4010 F.deleteBaseReg(F.BaseRegs[i]); in GenerateScales()
4014 if (F.Scale == 1 && (F.BaseRegs.empty() || in GenerateScales()
4053 for (const SCEV *&BaseReg : F.BaseRegs) { in GenerateTruncates()
4236 for (size_t N = 0, NE = F.BaseRegs.size(); N != NE; ++N) { in GenerateCrossUseConstantOffsets()
4237 const SCEV *BaseReg = F.BaseRegs[N]; in GenerateCrossUseConstantOffsets()
4252 NewF.BaseRegs[N] = SE.getAddExpr(NegImmS, BaseReg); in GenerateCrossUseConstantOffsets()
4257 for (const SCEV *NewReg : NewF.BaseRegs) in GenerateCrossUseConstantOffsets()
4362 for (const SCEV *Reg : F.BaseRegs) { in FilterOutUndesirableDedicatedRegisters()
4452 I = F.BaseRegs.begin(), E = F.BaseRegs.end(); I != E; ++I) { in NarrowSearchSpaceByDetectingSupersets()
4458 NewF.BaseRegs.erase(NewF.BaseRegs.begin() + in NarrowSearchSpaceByDetectingSupersets()
4459 (I - F.BaseRegs.begin())); in NarrowSearchSpaceByDetectingSupersets()
4474 NewF.BaseRegs.erase(NewF.BaseRegs.begin() + in NarrowSearchSpaceByDetectingSupersets()
4475 (I - F.BaseRegs.begin())); in NarrowSearchSpaceByDetectingSupersets()
4619 for (const SCEV *Reg : FA.BaseRegs) { in NarrowSearchSpaceByFilterFormulaWithSameScaledReg()
4624 for (const SCEV *Reg : FB.BaseRegs) { in NarrowSearchSpaceByFilterFormulaWithSameScaledReg()
4820 for (const SCEV *BaseReg : F.BaseRegs) { in NarrowSearchSpaceByDeletingCostlyFormulas()
4858 UniqRegs.insert(F.BaseRegs.begin(), F.BaseRegs.end()); in NarrowSearchSpaceByDeletingCostlyFormulas()
4987 is_contained(F.BaseRegs, Reg)) { in SolveRecurse()
5011 VisitedRegs.insert(F.ScaledReg ? F.ScaledReg : F.BaseRegs[0]); in SolveRecurse()
5220 for (const SCEV *Reg : F.BaseRegs) { in Expand()