reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Transforms/Scalar/LoopStrengthReduce.cpp
  466   if (!ScaledReg)
  475   const SCEVAddRecExpr *SAR = dyn_cast<const SCEVAddRecExpr>(ScaledReg);
  504   if (!ScaledReg) {
  505     ScaledReg = BaseRegs.back();
  513   const SCEVAddRecExpr *SAR = dyn_cast<const SCEVAddRecExpr>(ScaledReg);
  521       std::swap(ScaledReg, *I);
  533   BaseRegs.push_back(ScaledReg);
  534   ScaledReg = nullptr;
  541   if (BaseRegs.size() != 1 || ScaledReg)
  549   return !!ScaledReg + BaseRegs.size();
  556          ScaledReg ? ScaledReg->getType() :
  556          ScaledReg ? ScaledReg->getType() :
  570   return S == ScaledReg || is_contained(BaseRegs, S);
  577   if (ScaledReg)
  578     if (RegUses.isRegUsedByUsesOtherThan(ScaledReg, LUIdx))
  611     if (ScaledReg)
  612       OS << *ScaledReg;
 1332   if (const SCEV *ScaledReg = F.ScaledReg) {
 1516   if (F.ScaledReg) Key.push_back(F.ScaledReg);
 1516   if (F.ScaledReg) Key.push_back(F.ScaledReg);
 1540   if (F.ScaledReg) Key.push_back(F.ScaledReg);
 1540   if (F.ScaledReg) Key.push_back(F.ScaledReg);
 1548   assert((!F.ScaledReg || !F.ScaledReg->isZero()) &&
 1548   assert((!F.ScaledReg || !F.ScaledReg->isZero()) &&
 1560   if (F.ScaledReg)
 1561     Regs.insert(F.ScaledReg);
 1579     if (F.ScaledReg) Regs.insert(F.ScaledReg);
 1579     if (F.ScaledReg) Regs.insert(F.ScaledReg);
 2632             F.ScaledReg == OrigF.ScaledReg &&
 2632             F.ScaledReg == OrigF.ScaledReg &&
 3363   if (F.ScaledReg)
 3364     RegUses.countRegister(F.ScaledReg, LUIdx);
 3573   const SCEV *BaseReg = IsScaledReg ? Base.ScaledReg : Base.BaseRegs[Idx];
 3628         F.ScaledReg = nullptr;
 3632       F.ScaledReg = InnerSum;
 3745   const SCEV *G = IsScaledReg ? Base.ScaledReg : Base.BaseRegs[Idx];
 3754     F.ScaledReg = G;
 3790           F.ScaledReg = nullptr;
 3795         F.ScaledReg = NewG;
 3803   const SCEV *G = IsScaledReg ? Base.ScaledReg : Base.BaseRegs[Idx];
 3839     F.ScaledReg = G;
 3877   if (Base.ScaledReg && Base.ScaledReg->getType()->isPointerTy())
 3877   if (Base.ScaledReg && Base.ScaledReg->getType()->isPointerTy())
 3929     if (F.ScaledReg) {
 3930       F.ScaledReg = SE.getMulExpr(F.ScaledReg, FactorS);
 3930       F.ScaledReg = SE.getMulExpr(F.ScaledReg, FactorS);
 3931       if (getExactSDiv(F.ScaledReg, FactorS, SE) != Base.ScaledReg)
 3931       if (getExactSDiv(F.ScaledReg, FactorS, SE) != Base.ScaledReg)
 4003           F.ScaledReg = Quotient;
 4040       if (F.ScaledReg) {
 4041         const SCEV *NewScaledReg = SE.getAnyExtendExpr(F.ScaledReg, SrcTy);
 4044         F.ScaledReg = NewScaledReg;
 4203       if (F.ScaledReg == OrigReg) {
 4214         NewF.ScaledReg = SE.getAddExpr(NegImmS, NewF.ScaledReg);
 4214         NewF.ScaledReg = SE.getAddExpr(NegImmS, NewF.ScaledReg);
 4219         if (const SCEVConstant *C = dyn_cast<SCEVConstant>(NewF.ScaledReg))
 4360         if (F.ScaledReg &&
 4361             RegUses.isRegUsedByUsesOtherThan(F.ScaledReg, LUIdx))
 4362           Key.push_back(F.ScaledReg);
 4640       if (!F.ScaledReg)
 4642       auto P = BestFormulae.insert({{F.ScaledReg, F.Scale}, FIdx});
 4774       if (const SCEV *ScaledReg = F.ScaledReg) {
 4805     if (F.ScaledReg)
 4806       UniqRegs.insert(F.ScaledReg);
 4927       if ((F.ScaledReg && F.ScaledReg == Reg) ||
 4927       if ((F.ScaledReg && F.ScaledReg == Reg) ||
 4951           VisitedRegs.insert(F.ScaledReg ? F.ScaledReg : F.BaseRegs[0]);
 4951           VisitedRegs.insert(F.ScaledReg ? F.ScaledReg : F.BaseRegs[0]);
 5171     const SCEV *ScaledS = F.ScaledReg;