Lines Matching refs:BaseRegs
268 SmallVector<const SCEV *, 4> BaseRegs; member
368 BaseRegs.push_back(Sum); in initialMatch()
374 BaseRegs.push_back(Sum); in initialMatch()
385 return Scale != 1 || !BaseRegs.empty(); in isCanonical()
386 return BaseRegs.size() <= 1; in isCanonical()
400 assert(!BaseRegs.empty() && "1*reg => reg, should not be needed."); in canonicalize()
402 ScaledReg = BaseRegs.back(); in canonicalize()
403 BaseRegs.pop_back(); in canonicalize()
405 size_t BaseRegsSize = BaseRegs.size(); in canonicalize()
409 std::swap(ScaledReg, BaseRegs[Try++]); in canonicalize()
420 BaseRegs.push_back(ScaledReg); in unscale()
428 return !!ScaledReg + BaseRegs.size(); in getNumRegs()
434 return !BaseRegs.empty() ? BaseRegs.front()->getType() : in getType()
442 if (&S != &BaseRegs.back()) in deleteBaseReg()
443 std::swap(S, BaseRegs.back()); in deleteBaseReg()
444 BaseRegs.pop_back(); in deleteBaseReg()
450 std::find(BaseRegs.begin(), BaseRegs.end(), S) != BaseRegs.end(); in referencesReg()
460 for (const SCEV *BaseReg : BaseRegs) in hasRegsUsedByUsesOtherThan()
476 for (const SCEV *BaseReg : BaseRegs) { in print()
480 if (HasBaseReg && BaseRegs.empty()) { in print()
483 } else if (!HasBaseReg && !BaseRegs.empty()) { in print()
993 for (const SCEV *BaseReg : F.BaseRegs) { in RateFormula()
1253 SmallVector<const SCEV *, 4> Key = F.BaseRegs; in HasFormulaWithSameRegs()
1268 SmallVector<const SCEV *, 4> Key = F.BaseRegs; in InsertFormula()
1280 for (const SCEV *BaseReg : F.BaseRegs) in InsertFormula()
1288 Regs.insert(F.BaseRegs.begin(), F.BaseRegs.end()); in InsertFormula()
1309 Regs.insert(F.BaseRegs.begin(), F.BaseRegs.end()); in RecomputeRegs()
2324 if (F.BaseRegs == OrigF.BaseRegs && in FindUseWithSimilarFormula()
3034 F.BaseRegs.push_back(S); in InsertSupplementalFormula()
3044 for (const SCEV *BaseReg : F.BaseRegs) in CountRegisters()
3220 const SCEV *BaseReg = IsScaledReg ? Base.ScaledReg : Base.BaseRegs[Idx]; in GenerateReassociationsImpl()
3272 F.BaseRegs.erase(F.BaseRegs.begin() + Idx); in GenerateReassociationsImpl()
3276 F.BaseRegs[Idx] = InnerSum; in GenerateReassociationsImpl()
3286 F.BaseRegs.push_back(*J); in GenerateReassociationsImpl()
3306 for (size_t i = 0, e = Base.BaseRegs.size(); i != e; ++i) in GenerateReassociations()
3319 if (Base.BaseRegs.size() + (Base.Scale == 1) <= 1) in GenerateCombinations()
3326 F.BaseRegs.clear(); in GenerateCombinations()
3328 for (const SCEV *BaseReg : Base.BaseRegs) { in GenerateCombinations()
3333 F.BaseRegs.push_back(BaseReg); in GenerateCombinations()
3341 F.BaseRegs.push_back(Sum); in GenerateCombinations()
3352 const SCEV *G = IsScaledReg ? Base.ScaledReg : Base.BaseRegs[Idx]; in GenerateSymbolicOffsetsImpl()
3363 F.BaseRegs[Idx] = G; in GenerateSymbolicOffsetsImpl()
3373 for (size_t i = 0, e = Base.BaseRegs.size(); i != e; ++i) in GenerateSymbolicOffsets()
3384 const SCEV *G = IsScaledReg ? Base.ScaledReg : Base.BaseRegs[Idx]; in GenerateConstantOffsetsImpl()
3398 F.deleteBaseReg(F.BaseRegs[Idx]); in GenerateConstantOffsetsImpl()
3403 F.BaseRegs[Idx] = NewG; in GenerateConstantOffsetsImpl()
3419 F.BaseRegs[Idx] = G; in GenerateConstantOffsetsImpl()
3433 for (size_t i = 0, e = Base.BaseRegs.size(); i != e; ++i) in GenerateConstantOffsets()
3494 for (size_t i = 0, e = F.BaseRegs.size(); i != e; ++i) { in GenerateICmpZeroScales()
3495 F.BaseRegs[i] = SE.getMulExpr(F.BaseRegs[i], FactorS); in GenerateICmpZeroScales()
3496 if (getExactSDiv(F.BaseRegs[i], FactorS, SE) != Base.BaseRegs[i]) in GenerateICmpZeroScales()
3543 Base.HasBaseReg = Base.BaseRegs.size() > 1; in GenerateScales()
3563 for (size_t i = 0, e = Base.BaseRegs.size(); i != e; ++i) in GenerateScales()
3565 dyn_cast<SCEVAddRecExpr>(Base.BaseRegs[i])) { in GenerateScales()
3575 F.deleteBaseReg(F.BaseRegs[i]); in GenerateScales()
3579 if (F.Scale == 1 && F.BaseRegs.empty()) in GenerateScales()
3602 for (const SCEV *&BaseReg : F.BaseRegs) in GenerateTruncates()
3767 for (size_t N = 0, NE = F.BaseRegs.size(); N != NE; ++N) { in GenerateCrossUseConstantOffsets()
3768 const SCEV *BaseReg = F.BaseRegs[N]; in GenerateCrossUseConstantOffsets()
3780 NewF.BaseRegs[N] = SE.getAddExpr(NegImmS, BaseReg); in GenerateCrossUseConstantOffsets()
3785 for (const SCEV *NewReg : NewF.BaseRegs) in GenerateCrossUseConstantOffsets()
3889 for (const SCEV *Reg : F.BaseRegs) { in FilterOutUndesirableDedicatedRegisters()
3983 I = F.BaseRegs.begin(), E = F.BaseRegs.end(); I != E; ++I) { in NarrowSearchSpaceByDetectingSupersets()
3987 NewF.BaseRegs.erase(NewF.BaseRegs.begin() + in NarrowSearchSpaceByDetectingSupersets()
3988 (I - F.BaseRegs.begin())); in NarrowSearchSpaceByDetectingSupersets()
4002 NewF.BaseRegs.erase(NewF.BaseRegs.begin() + in NarrowSearchSpaceByDetectingSupersets()
4003 (I - F.BaseRegs.begin())); in NarrowSearchSpaceByDetectingSupersets()
4232 std::find(F.BaseRegs.begin(), F.BaseRegs.end(), Reg) != in SolveRecurse()
4233 F.BaseRegs.end()) { in SolveRecurse()
4257 VisitedRegs.insert(F.ScaledReg ? F.ScaledReg : F.BaseRegs[0]); in SolveRecurse()
4467 for (const SCEV *Reg : F.BaseRegs) { in Expand()