reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
450 BaseRegs.push_back(Sum); 456 BaseRegs.push_back(Sum); 467 return BaseRegs.size() <= 1; 472 if (Scale == 1 && BaseRegs.empty()) 483 find_if(make_range(BaseRegs.begin(), BaseRegs.end()), [&](const SCEV *S) { 483 find_if(make_range(BaseRegs.begin(), BaseRegs.end()), [&](const SCEV *S) { 487 return I == BaseRegs.end(); 501 assert(!BaseRegs.empty() && "1*reg => reg, should not be needed."); 505 ScaledReg = BaseRegs.back(); 506 BaseRegs.pop_back(); 515 auto I = find_if(make_range(BaseRegs.begin(), BaseRegs.end()), 515 auto I = find_if(make_range(BaseRegs.begin(), BaseRegs.end()), 520 if (I != BaseRegs.end()) 533 BaseRegs.push_back(ScaledReg); 541 if (BaseRegs.size() != 1 || ScaledReg) 549 return !!ScaledReg + BaseRegs.size(); 555 return !BaseRegs.empty() ? BaseRegs.front()->getType() : 555 return !BaseRegs.empty() ? BaseRegs.front()->getType() : 563 if (&S != &BaseRegs.back()) 564 std::swap(S, BaseRegs.back()); 565 BaseRegs.pop_back(); 570 return S == ScaledReg || is_contained(BaseRegs, S); 580 for (const SCEV *BaseReg : BaseRegs) 597 for (const SCEV *BaseReg : BaseRegs) { 601 if (HasBaseReg && BaseRegs.empty()) { 604 } else if (!HasBaseReg && !BaseRegs.empty()) { 1341 for (const SCEV *BaseReg : F.BaseRegs) { 1515 SmallVector<const SCEV *, 4> Key = F.BaseRegs; 1539 SmallVector<const SCEV *, 4> Key = F.BaseRegs; 1551 for (const SCEV *BaseReg : F.BaseRegs) 1559 Regs.insert(F.BaseRegs.begin(), F.BaseRegs.end()); 1559 Regs.insert(F.BaseRegs.begin(), F.BaseRegs.end()); 1580 Regs.insert(F.BaseRegs.begin(), F.BaseRegs.end()); 1580 Regs.insert(F.BaseRegs.begin(), F.BaseRegs.end()); 2631 if (F.BaseRegs == OrigF.BaseRegs && 2631 if (F.BaseRegs == OrigF.BaseRegs && 3355 F.BaseRegs.push_back(S); 3365 for (const SCEV *BaseReg : F.BaseRegs) 3573 const SCEV *BaseReg = IsScaledReg ? Base.ScaledReg : Base.BaseRegs[Idx]; 3630 F.BaseRegs.erase(F.BaseRegs.begin() + Idx); 3630 F.BaseRegs.erase(F.BaseRegs.begin() + Idx); 3634 F.BaseRegs[Idx] = InnerSum; 3644 F.BaseRegs.push_back(*J); 3669 for (size_t i = 0, e = Base.BaseRegs.size(); i != e; ++i) 3682 if (Base.BaseRegs.size() + (Base.Scale == 1) + 3691 NewBase.BaseRegs.clear(); 3693 for (const SCEV *BaseReg : Base.BaseRegs) { 3701 NewBase.BaseRegs.push_back(BaseReg); 3719 F.BaseRegs.push_back(Sum); 3745 const SCEV *G = IsScaledReg ? Base.ScaledReg : Base.BaseRegs[Idx]; 3756 F.BaseRegs[Idx] = G; 3766 for (size_t i = 0, e = Base.BaseRegs.size(); i != e; ++i) 3792 F.deleteBaseReg(F.BaseRegs[Idx]); 3797 F.BaseRegs[Idx] = NewG; 3803 const SCEV *G = IsScaledReg ? Base.ScaledReg : Base.BaseRegs[Idx]; 3841 F.BaseRegs[Idx] = G; 3855 for (size_t i = 0, e = Base.BaseRegs.size(); i != e; ++i) 3879 for (const SCEV *BaseReg : Base.BaseRegs) 3922 for (size_t i = 0, e = F.BaseRegs.size(); i != e; ++i) { 3923 F.BaseRegs[i] = SE.getMulExpr(F.BaseRegs[i], FactorS); 3923 F.BaseRegs[i] = SE.getMulExpr(F.BaseRegs[i], FactorS); 3924 if (getExactSDiv(F.BaseRegs[i], FactorS, SE) != Base.BaseRegs[i]) 3924 if (getExactSDiv(F.BaseRegs[i], FactorS, SE) != Base.BaseRegs[i]) 3972 Base.HasBaseReg = Base.BaseRegs.size() > 1; 3992 for (size_t i = 0, e = Base.BaseRegs.size(); i != e; ++i) { 3993 const SCEVAddRecExpr *AR = dyn_cast<SCEVAddRecExpr>(Base.BaseRegs[i]); 4004 F.deleteBaseReg(F.BaseRegs[i]); 4008 if (F.Scale == 1 && (F.BaseRegs.empty() || 4047 for (const SCEV *&BaseReg : F.BaseRegs) { 4230 for (size_t N = 0, NE = F.BaseRegs.size(); N != NE; ++N) { 4231 const SCEV *BaseReg = F.BaseRegs[N]; 4246 NewF.BaseRegs[N] = SE.getAddExpr(NegImmS, BaseReg); 4251 for (const SCEV *NewReg : NewF.BaseRegs) 4356 for (const SCEV *Reg : F.BaseRegs) { 4446 I = F.BaseRegs.begin(), E = F.BaseRegs.end(); I != E; ++I) { 4446 I = F.BaseRegs.begin(), E = F.BaseRegs.end(); I != E; ++I) { 4452 NewF.BaseRegs.erase(NewF.BaseRegs.begin() + 4452 NewF.BaseRegs.erase(NewF.BaseRegs.begin() + 4453 (I - F.BaseRegs.begin())); 4468 NewF.BaseRegs.erase(NewF.BaseRegs.begin() + 4468 NewF.BaseRegs.erase(NewF.BaseRegs.begin() + 4469 (I - F.BaseRegs.begin())); 4613 for (const SCEV *Reg : FA.BaseRegs) { 4618 for (const SCEV *Reg : FB.BaseRegs) { 4766 for (const SCEV *BaseReg : F.BaseRegs) { 4804 UniqRegs.insert(F.BaseRegs.begin(), F.BaseRegs.end()); 4804 UniqRegs.insert(F.BaseRegs.begin(), F.BaseRegs.end()); 4928 is_contained(F.BaseRegs, Reg)) { 4951 VisitedRegs.insert(F.ScaledReg ? F.ScaledReg : F.BaseRegs[0]); 5160 for (const SCEV *Reg : F.BaseRegs) {