Lines Matching refs:BaseRegs

249   SmallVector<const SCEV *, 4> BaseRegs;  member
353 BaseRegs.push_back(Sum); in InitialMatch()
359 BaseRegs.push_back(Sum); in InitialMatch()
370 return Scale != 1 || !BaseRegs.empty(); in isCanonical()
371 return BaseRegs.size() <= 1; in isCanonical()
385 assert(!BaseRegs.empty() && "1*reg => reg, should not be needed."); in Canonicalize()
387 ScaledReg = BaseRegs.back(); in Canonicalize()
388 BaseRegs.pop_back(); in Canonicalize()
390 size_t BaseRegsSize = BaseRegs.size(); in Canonicalize()
394 std::swap(ScaledReg, BaseRegs[Try++]); in Canonicalize()
405 BaseRegs.push_back(ScaledReg); in Unscale()
414 return !!ScaledReg + BaseRegs.size(); in getNumRegs()
420 return !BaseRegs.empty() ? BaseRegs.front()->getType() : in getType()
428 if (&S != &BaseRegs.back()) in DeleteBaseReg()
429 std::swap(S, BaseRegs.back()); in DeleteBaseReg()
430 BaseRegs.pop_back(); in DeleteBaseReg()
436 std::find(BaseRegs.begin(), BaseRegs.end(), S) != BaseRegs.end(); in referencesReg()
446 for (SmallVectorImpl<const SCEV *>::const_iterator I = BaseRegs.begin(), in hasRegsUsedByUsesOtherThan()
447 E = BaseRegs.end(); I != E; ++I) in hasRegsUsedByUsesOtherThan()
463 for (SmallVectorImpl<const SCEV *>::const_iterator I = BaseRegs.begin(), in print()
464 E = BaseRegs.end(); I != E; ++I) { in print()
468 if (HasBaseReg && BaseRegs.empty()) { in print()
471 } else if (!HasBaseReg && !BaseRegs.empty()) { in print()
1004 for (SmallVectorImpl<const SCEV *>::const_iterator I = F.BaseRegs.begin(), in RateFormula()
1005 E = F.BaseRegs.end(); I != E; ++I) { in RateFormula()
1275 SmallVector<const SCEV *, 4> Key = F.BaseRegs; in HasFormulaWithSameRegs()
1291 SmallVector<const SCEV *, 4> Key = F.BaseRegs; in InsertFormula()
1304 F.BaseRegs.begin(), E = F.BaseRegs.end(); I != E; ++I) in InsertFormula()
1312 Regs.insert(F.BaseRegs.begin(), F.BaseRegs.end()); in InsertFormula()
1333 Regs.insert(F.BaseRegs.begin(), F.BaseRegs.end()); in RecomputeRegs()
2357 if (F.BaseRegs == OrigF.BaseRegs && in FindUseWithSimilarFormula()
3079 F.BaseRegs.push_back(S); in InsertSupplementalFormula()
3090 for (SmallVectorImpl<const SCEV *>::const_iterator I = F.BaseRegs.begin(), in CountRegisters()
3091 E = F.BaseRegs.end(); I != E; ++I) in CountRegisters()
3264 const SCEV *BaseReg = IsScaledReg ? Base.ScaledReg : Base.BaseRegs[Idx]; in GenerateReassociationsImpl()
3316 F.BaseRegs.erase(F.BaseRegs.begin() + Idx); in GenerateReassociationsImpl()
3320 F.BaseRegs[Idx] = InnerSum; in GenerateReassociationsImpl()
3330 F.BaseRegs.push_back(*J); in GenerateReassociationsImpl()
3351 for (size_t i = 0, e = Base.BaseRegs.size(); i != e; ++i) in GenerateReassociations()
3364 if (Base.BaseRegs.size() + (Base.Scale == 1) <= 1) in GenerateCombinations()
3371 F.BaseRegs.clear(); in GenerateCombinations()
3374 I = Base.BaseRegs.begin(), E = Base.BaseRegs.end(); I != E; ++I) { in GenerateCombinations()
3380 F.BaseRegs.push_back(BaseReg); in GenerateCombinations()
3388 F.BaseRegs.push_back(Sum); in GenerateCombinations()
3399 const SCEV *G = IsScaledReg ? Base.ScaledReg : Base.BaseRegs[Idx]; in GenerateSymbolicOffsetsImpl()
3410 F.BaseRegs[Idx] = G; in GenerateSymbolicOffsetsImpl()
3420 for (size_t i = 0, e = Base.BaseRegs.size(); i != e; ++i) in GenerateSymbolicOffsets()
3431 const SCEV *G = IsScaledReg ? Base.ScaledReg : Base.BaseRegs[Idx]; in GenerateConstantOffsetsImpl()
3447 F.DeleteBaseReg(F.BaseRegs[Idx]); in GenerateConstantOffsetsImpl()
3452 F.BaseRegs[Idx] = NewG; in GenerateConstantOffsetsImpl()
3468 F.BaseRegs[Idx] = G; in GenerateConstantOffsetsImpl()
3482 for (size_t i = 0, e = Base.BaseRegs.size(); i != e; ++i) in GenerateConstantOffsets()
3546 for (size_t i = 0, e = F.BaseRegs.size(); i != e; ++i) { in GenerateICmpZeroScales()
3547 F.BaseRegs[i] = SE.getMulExpr(F.BaseRegs[i], FactorS); in GenerateICmpZeroScales()
3548 if (getExactSDiv(F.BaseRegs[i], FactorS, SE) != Base.BaseRegs[i]) in GenerateICmpZeroScales()
3598 Base.HasBaseReg = Base.BaseRegs.size() > 1; in GenerateScales()
3618 for (size_t i = 0, e = Base.BaseRegs.size(); i != e; ++i) in GenerateScales()
3620 dyn_cast<SCEVAddRecExpr>(Base.BaseRegs[i])) { in GenerateScales()
3630 F.DeleteBaseReg(F.BaseRegs[i]); in GenerateScales()
3634 if (F.Scale == 1 && F.BaseRegs.empty()) in GenerateScales()
3659 for (SmallVectorImpl<const SCEV *>::iterator J = F.BaseRegs.begin(), in GenerateTruncates()
3660 JE = F.BaseRegs.end(); J != JE; ++J) in GenerateTruncates()
3835 for (size_t N = 0, NE = F.BaseRegs.size(); N != NE; ++N) { in GenerateCrossUseConstantOffsets()
3836 const SCEV *BaseReg = F.BaseRegs[N]; in GenerateCrossUseConstantOffsets()
3848 NewF.BaseRegs[N] = SE.getAddExpr(NegImmS, BaseReg); in GenerateCrossUseConstantOffsets()
3854 J = NewF.BaseRegs.begin(), JE = NewF.BaseRegs.end(); in GenerateCrossUseConstantOffsets()
3959 for (SmallVectorImpl<const SCEV *>::const_iterator J = F.BaseRegs.begin(), in FilterOutUndesirableDedicatedRegisters()
3960 JE = F.BaseRegs.end(); J != JE; ++J) { in FilterOutUndesirableDedicatedRegisters()
4058 I = F.BaseRegs.begin(), E = F.BaseRegs.end(); I != E; ++I) { in NarrowSearchSpaceByDetectingSupersets()
4062 NewF.BaseRegs.erase(NewF.BaseRegs.begin() + in NarrowSearchSpaceByDetectingSupersets()
4063 (I - F.BaseRegs.begin())); in NarrowSearchSpaceByDetectingSupersets()
4077 NewF.BaseRegs.erase(NewF.BaseRegs.begin() + in NarrowSearchSpaceByDetectingSupersets()
4078 (I - F.BaseRegs.begin())); in NarrowSearchSpaceByDetectingSupersets()
4320 std::find(F.BaseRegs.begin(), F.BaseRegs.end(), Reg) != in SolveRecurse()
4321 F.BaseRegs.end()) { in SolveRecurse()
4345 VisitedRegs.insert(F.ScaledReg ? F.ScaledReg : F.BaseRegs[0]); in SolveRecurse()
4552 for (SmallVectorImpl<const SCEV *>::const_iterator I = F.BaseRegs.begin(), in Expand()
4553 E = F.BaseRegs.end(); I != E; ++I) { in Expand()