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

Derived Classes

include/llvm/IR/PassManagerInternal.h
  137   template <typename T> struct Checker : CheckerBase, T {};

Declarations

include/llvm/Analysis/DependenceAnalysis.h
   51   class ScalarEvolution;
include/llvm/Analysis/IVDescriptors.h
   45 class ScalarEvolution;
include/llvm/Analysis/IVUsers.h
   28 class ScalarEvolution;
include/llvm/Analysis/Loads.h
   25 class ScalarEvolution;
include/llvm/Analysis/LoopAccessAnalysis.h
   33 class ScalarEvolution;
include/llvm/Analysis/LoopInfo.h
   64 class ScalarEvolution;
include/llvm/Analysis/ScalarEvolution.h
   65 class ScalarEvolution;
include/llvm/Analysis/ScalarEvolutionNormalization.h
   45 class ScalarEvolution;
include/llvm/Analysis/TargetTransformInfo.h
   50 class ScalarEvolution;
include/llvm/Analysis/VectorUtils.h
  139 class ScalarEvolution;
include/llvm/CodeGen/BasicTTIImpl.h
   61 class ScalarEvolution;
include/llvm/Transforms/Scalar/NaryReassociate.h
   95 class ScalarEvolution;
include/llvm/Transforms/Utils/LoopRotationUtils.h
   23 class ScalarEvolution;
include/llvm/Transforms/Utils/LoopUtils.h
   48 class ScalarEvolution;
include/llvm/Transforms/Utils/LoopVersioning.h
   28 class ScalarEvolution;
include/llvm/Transforms/Utils/SimplifyIndVar.h
   27 class ScalarEvolution;
include/llvm/Transforms/Utils/UnrollLoop.h
   35 class ScalarEvolution;
include/llvm/Transforms/Vectorize/LoopVectorize.h
   75 class ScalarEvolution;
include/llvm/Transforms/Vectorize/SLPVectorizer.h
   43 class ScalarEvolution;
lib/Target/AArch64/AArch64TargetTransformInfo.h
   36 class ScalarEvolution;
lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
   37 class ScalarEvolution;
lib/Target/ARM/ARMTargetTransformInfo.h
   37 class ScalarEvolution;
lib/Target/Hexagon/HexagonTargetTransformInfo.h
   29 class ScalarEvolution;
tools/polly/include/polly/CodeGen/IRBuilder.h
   23 class ScalarEvolution;
tools/polly/include/polly/Support/ScopHelper.h
   24 class ScalarEvolution;

References

include/llvm/Analysis/DependenceAnalysis.h
  273     DependenceInfo(Function *F, AliasAnalysis *AA, ScalarEvolution *SE,
  337     ScalarEvolution *SE;
  386       ScalarEvolution *SE;
  451       void setAny(ScalarEvolution *SE);
include/llvm/Analysis/IVDescriptors.h
  294   isInductionPHI(PHINode *Phi, const Loop *L, ScalarEvolution *SE,
  301   static bool isFPInductionPHI(PHINode *Phi, const Loop *L, ScalarEvolution *SE,
include/llvm/Analysis/IVUsers.h
   99   ScalarEvolution *SE;
  111           ScalarEvolution *SE);
include/llvm/Analysis/Loads.h
   75                                        ScalarEvolution &SE,
include/llvm/Analysis/LoopAccessAnalysis.h
  363   RuntimePointerChecking(ScalarEvolution *SE) : Need(false), SE(SE) {}
  488   ScalarEvolution *SE;
  518   LoopAccessInfo(Loop *L, ScalarEvolution *SE, const TargetLibraryInfo *TLI,
  708                      ScalarEvolution &SE,
  714                          ScalarEvolution &SE, bool CheckType = true);
  753   ScalarEvolution *SE;
include/llvm/Analysis/LoopAnalysisManager.h
   58   ScalarEvolution &SE;
include/llvm/Analysis/LoopCacheAnalysis.h
   50                    ScalarEvolution &SE);
  139   ScalarEvolution &SE;
  185   CacheCost(const LoopVectorTy &Loops, const LoopInfo &LI, ScalarEvolution &SE,
  259   ScalarEvolution &SE;
include/llvm/Analysis/LoopInfo.h
  623                                                 ScalarEvolution &SE);
  684                ScalarEvolution &SE)
  703     ScalarEvolution &SE;
  708   Optional<LoopBounds> getBounds(ScalarEvolution &SE) const;
  717   PHINode *getInductionVariable(ScalarEvolution &SE) const;
  721   bool getInductionDescriptor(ScalarEvolution &SE,
  732                                     ScalarEvolution &SE) const;
  761   bool isCanonical(ScalarEvolution &SE) const;
include/llvm/Analysis/LoopUnrollAnalyzer.h
   50                        ScalarEvolution &SE, const Loop *L)
   81   ScalarEvolution &SE;
include/llvm/Analysis/ScalarEvolution.h
  365   getImpliedFlags(const SCEVAddRecExpr *AR, ScalarEvolution &SE);
  476   ScalarEvolution(ScalarEvolution &&Arg);
 1094     ScalarEvolution *SE;
 1100     SCEVCallbackVH(Value *V, ScalarEvolution *SE = nullptr);
 1329     const SCEV *getExact(const Loop *L, ScalarEvolution *SE,
 1336     const SCEV *getExact(BasicBlock *ExitingBlock, ScalarEvolution *SE) const;
 1339     const SCEV *getMax(ScalarEvolution *SE) const;
 1342     const SCEV *getMax(BasicBlock *ExitingBlock, ScalarEvolution *SE) const;
 1346     bool isMaxOrZero(ScalarEvolution *SE) const;
 1350     bool hasOperand(const SCEV *S, ScalarEvolution *SE) const;
 1920   using Result = ScalarEvolution;
 1922   ScalarEvolution run(Function &F, FunctionAnalysisManager &AM);
 1937   std::unique_ptr<ScalarEvolution> SE;
 1944   ScalarEvolution &getSE() { return *SE; }
 1945   const ScalarEvolution &getSE() const { return *SE; }
 1969   PredicatedScalarEvolution(ScalarEvolution &SE, Loop &L);
 1999   ScalarEvolution *getSE() const { return &SE; }
 2033   ScalarEvolution &SE;
include/llvm/Analysis/ScalarEvolutionAliasAnalysis.h
   27   ScalarEvolution &SE;
   30   explicit SCEVAAResult(ScalarEvolution &SE) : AAResultBase(), SE(SE) {}
include/llvm/Analysis/ScalarEvolutionExpander.h
   31   bool isSafeToExpand(const SCEV *S, ScalarEvolution &SE);
   37                         ScalarEvolution &SE);
   46     ScalarEvolution &SE;
  145     explicit SCEVExpander(ScalarEvolution &se, const DataLayout &DL,
  318     Optional<ScalarEvolution::ValueOffsetPair>
  354     ScalarEvolution::ValueOffsetPair
include/llvm/Analysis/ScalarEvolutionExpressions.h
  313     const SCEV *getStepRecurrence(ScalarEvolution &SE) const {
  340         Flags = ScalarEvolution::setFlags(Flags, FlagNW);
  346     const SCEV *evaluateAtIteration(const SCEV *It, ScalarEvolution &SE) const;
  355                                         ScalarEvolution &SE) const;
  359     const SCEVAddRecExpr *getPostIncExpr(ScalarEvolution &SE) const;
  472     ScalarEvolution *SE;
  479                 ScalarEvolution *se, SCEVUnknown *next) :
  651     ScalarEvolution &SE;
  660     SCEVRewriteVisitor(ScalarEvolution &SE) : SE(SE) {}
  791     static const SCEV *rewrite(const SCEV *Scev, ScalarEvolution &SE,
  798     SCEVParameterRewriter(ScalarEvolution &SE, ValueToValueMap &M, bool C)
  824     SCEVLoopAddRecRewriter(ScalarEvolution &SE, LoopToScevMapT &M)
  828                                ScalarEvolution &SE) {
include/llvm/Analysis/ScalarEvolutionNormalization.h
   55                                    ScalarEvolution &SE);
   60                                      ScalarEvolution &SE);
   65                                      ScalarEvolution &SE);
include/llvm/Analysis/TargetTransformInfo.h
  100   bool isHardwareLoopCandidate(ScalarEvolution &SE, LoopInfo &LI,
  507   void getUnrollingPreferences(Loop *L, ScalarEvolution &,
  512   bool isHardwareLoopProfitable(Loop *L, ScalarEvolution &SE,
  565   bool canSaveCmp(Loop *L, BranchInst **BI, ScalarEvolution *SE, LoopInfo *LI,
 1013   int getAddressComputationCost(Type *Ty, ScalarEvolution *SE = nullptr,
 1192   virtual void getUnrollingPreferences(Loop *L, ScalarEvolution &,
 1194   virtual bool isHardwareLoopProfitable(Loop *L, ScalarEvolution &SE,
 1208   virtual bool canSaveCmp(Loop *L, BranchInst **BI, ScalarEvolution *SE,
 1336   virtual int getAddressComputationCost(Type *Ty, ScalarEvolution *SE,
 1458   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
 1462   bool isHardwareLoopProfitable(Loop *L, ScalarEvolution &SE,
 1489                         ScalarEvolution *SE,
 1761   int getAddressComputationCost(Type *Ty, ScalarEvolution *SE,
include/llvm/Analysis/TargetTransformInfoImpl.h
  205   bool isHardwareLoopProfitable(Loop *L, ScalarEvolution &SE,
  212   void getUnrollingPreferences(Loop *, ScalarEvolution &,
  236   bool canSaveCmp(Loop *L, BranchInst **BI, ScalarEvolution *SE, LoopInfo *LI,
  491   unsigned getAddressComputationCost(Type *Tp, ScalarEvolution *,
  665   const SCEVConstant *getConstantStrideStep(ScalarEvolution *SE,
  673   bool isConstantStridedAccessLessThan(ScalarEvolution *SE, const SCEV *Ptr,
include/llvm/Analysis/VectorUtils.h
  172 Value *stripGetElementPtr(Value *Ptr, ScalarEvolution *SE, Loop *Lp);
  179 Value *getStrideFromPointer(Value *Ptr, ScalarEvolution *SE, Loop *Lp);
include/llvm/CodeGen/BasicTTIImpl.h
  439   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
  504   bool isHardwareLoopProfitable(Loop *L, ScalarEvolution &SE,
 1555   unsigned getAddressComputationCost(Type *Ty, ScalarEvolution *,
include/llvm/IR/PassManagerInternal.h
  137   template <typename T> struct Checker : CheckerBase, T {};
  147   enum { Value = sizeof(check<ResultT>(rank<2>())) == sizeof(EnabledType) };
  208   explicit AnalysisResultModel(ResultT Result) : Result(std::move(Result)) {}
  231   ResultT Result;
include/llvm/Transforms/Scalar/AlignmentFromAssumptions.h
   32   bool runImpl(Function &F, AssumptionCache &AC, ScalarEvolution *SE_,
   35   ScalarEvolution *SE = nullptr;
include/llvm/Transforms/Scalar/NaryReassociate.h
  108                ScalarEvolution *SE_, TargetLibraryInfo *TLI_,
  170   ScalarEvolution *SE;
include/llvm/Transforms/Utils/LoopRotationUtils.h
   34                   AssumptionCache *AC, DominatorTree *DT, ScalarEvolution *SE,
include/llvm/Transforms/Utils/LoopSimplify.h
   62 bool simplifyLoop(Loop *L, DominatorTree *DT, LoopInfo *LI, ScalarEvolution *SE,
include/llvm/Transforms/Utils/LoopUtils.h
   90 bool formLCSSA(Loop &L, DominatorTree &DT, LoopInfo *LI, ScalarEvolution *SE);
  102                           ScalarEvolution *SE);
  149 void deleteDeadLoop(Loop *L, DominatorTree *DT, ScalarEvolution *SE,
  271 bool hasIterationCountInvariantInParent(Loop *L, ScalarEvolution &SE);
  344 bool isKnownNegativeInLoop(const SCEV *S, const Loop *L, ScalarEvolution &SE);
  349                               ScalarEvolution &SE);
  352 bool cannotBeMaxInLoop(const SCEV *S, const Loop *L, ScalarEvolution &SE,
  356 bool cannotBeMinInLoop(const SCEV *S, const Loop *L, ScalarEvolution &SE,
include/llvm/Transforms/Utils/LoopVersioning.h
   42                  DominatorTree *DT, ScalarEvolution *SE,
  147   ScalarEvolution *SE;
include/llvm/Transforms/Utils/SimplifyIndVar.h
   48 bool simplifyUsersOfIV(PHINode *CurrIV, ScalarEvolution *SE, DominatorTree *DT,
   54 bool simplifyLoopIVs(Loop *L, ScalarEvolution *SE, DominatorTree *DT,
include/llvm/Transforms/Utils/UnrollLoop.h
   82                             ScalarEvolution *SE, DominatorTree *DT,
   90                                 ScalarEvolution *SE, DominatorTree *DT,
   96                       unsigned &TripCount, ScalarEvolution &SE);
  100 bool peelLoop(Loop *L, unsigned PeelCount, LoopInfo *LI, ScalarEvolution *SE,
  105                                   LoopInfo *LI, ScalarEvolution *SE,
  110 bool isSafeToUnrollAndJam(Loop *L, ScalarEvolution &SE, DominatorTree &DT,
  114                         DominatorTree &DT, LoopInfo *LI, ScalarEvolution &SE,
  125                              ScalarEvolution *SE, DominatorTree *DT,
  131     Loop *L, ScalarEvolution &SE, const TargetTransformInfo &TTI,
include/llvm/Transforms/Vectorize/LoopVectorize.h
  132   ScalarEvolution *SE;
  148   bool runImpl(Function &F, ScalarEvolution &SE_, LoopInfo &LI_,
include/llvm/Transforms/Vectorize/SLPVectorizer.h
   65   ScalarEvolution *SE = nullptr;
   79   bool runImpl(Function &F, ScalarEvolution *SE_, TargetTransformInfo *TTI_,
lib/Analysis/Delinearization.cpp
   43   ScalarEvolution *SE;
lib/Analysis/DependenceAnalysis.cpp
  127   auto &SE = FAM.getResult<ScalarEvolutionAnalysis>(F);
  150   auto &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
  397 void DependenceInfo::Constraint::setAny(ScalarEvolution *NewSE) {
lib/Analysis/IVDescriptors.cpp
  828                                            ScalarEvolution *SE,
 1030     PHINode *Phi, const Loop *TheLoop, ScalarEvolution *SE,
lib/Analysis/IVUsers.cpp
   60                           ScalarEvolution *SE, LoopInfo *LI) {
  305                  ScalarEvolution *SE)
  370   auto *SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE();
lib/Analysis/Loads.cpp
  198                                              ScalarEvolution &SE,
lib/Analysis/LoopAccessAnalysis.cpp
  159     ScalarEvolution *SE = PSE.getSE();
  195   ScalarEvolution *SE = PSE.getSE();
  268                                    ScalarEvolution *SE) {
  544   bool canCheckPtrAtRT(RuntimePointerChecking &RtCheck, ScalarEvolution *SE,
  695                                      ScalarEvolution *SE, Loop *TheLoop,
 1101                            ScalarEvolution &SE,
 1172                                ScalarEvolution &SE, bool CheckType) {
 1350 static bool isSafeDependenceDistance(const DataLayout &DL, ScalarEvolution &SE,
 2037       auto *SE = PSE->getSE();
 2108   auto *SE = PSE->getSE();
 2146              Instruction *Loc, SCEVExpander &Exp, ScalarEvolution *SE,
 2208   auto *SE = PSE->getSE();
 2322   ScalarEvolution *SE = PSE->getSE();
 2344 LoopAccessInfo::LoopAccessInfo(Loop *L, ScalarEvolution *SE,
lib/Analysis/LoopCacheAnalysis.cpp
   75                                   const Loop &L, ScalarEvolution &SE) {
   97 static const SCEV *computeTripCount(const Loop &L, ScalarEvolution &SE) {
  129                                    const LoopInfo &LI, ScalarEvolution &SE)
lib/Analysis/LoopInfo.cpp
  199                                                        ScalarEvolution &SE) {
  283 Optional<Loop::LoopBounds> Loop::getBounds(ScalarEvolution &SE) const {
  290 PHINode *Loop::getInductionVariable(ScalarEvolution &SE) const {
  328 bool Loop::getInductionDescriptor(ScalarEvolution &SE,
  337                                         ScalarEvolution &SE) const {
  401 bool Loop::isCanonical(ScalarEvolution &SE) const {
lib/Analysis/ScalarEvolution.cpp
  885   static void divide(ScalarEvolution &SE, const SCEV *Numerator,
 1086   SCEVDivision(ScalarEvolution &S, const SCEV *Numerator,
 1105   ScalarEvolution &SE;
 1117                                        ScalarEvolution &SE,
 1235                                                 ScalarEvolution &SE) const {
 1347                                                  ScalarEvolution *SE) {
 1367                                                    ScalarEvolution *SE) {
 1403                                              ScalarEvolution *SE) {
 1409     SCEVSignExtendExpr>::GetExtendExpr = &ScalarEvolution::getSignExtendExpr;
 1419                                              ScalarEvolution *SE) {
 1425     SCEVZeroExtendExpr>::GetExtendExpr = &ScalarEvolution::getZeroExtendExpr;
 1438                                         ScalarEvolution *SE, unsigned Depth) {
 1467     ScalarEvolution::maskFlags(SA->getNoWrapFlags(), SCEV::FlagNUW);
 1512                                         ScalarEvolution *SE,
 1605 static APInt extractConstantWithoutWrapping(ScalarEvolution &SE,
 1626 static APInt extractConstantWithoutWrapping(ScalarEvolution &SE,
 2273                              ScalarEvolution &SE) {
 2337 StrengthenNoWrapFlags(ScalarEvolution *SE, SCEVTypes Type,
 2351       ScalarEvolution::maskFlags(Flags, SignOrUnsignMask);
 2360         ScalarEvolution::setFlags(Flags, (SCEV::NoWrapFlags)SignOrUnsignMask);
 2362   SignOrUnsignWrap = ScalarEvolution::maskFlags(Flags, SignOrUnsignMask);
 2386         Flags = ScalarEvolution::setFlags(Flags, SCEV::FlagNSW);
 2394         Flags = ScalarEvolution::setFlags(Flags, SCEV::FlagNUW);
 3841 SetVector<ScalarEvolution::ValueOffsetPair> *
 4239   static const SCEV *rewrite(const SCEV *S, const Loop *L, ScalarEvolution &SE,
 4269   explicit SCEVInitRewriter(const Loop *L, ScalarEvolution &SE)
 4283   static const SCEV *rewrite(const SCEV *S, const Loop *L, ScalarEvolution &SE) {
 4310   explicit SCEVPostIncRewriter(const Loop *L, ScalarEvolution &SE)
 4325                              ScalarEvolution &SE) {
 4373                                        bool IsPosBECond, ScalarEvolution &SE)
 4401                              ScalarEvolution &SE) {
 4424   explicit SCEVShiftRewriter(const Loop *L, ScalarEvolution &SE)
 4449       Result = ScalarEvolution::setFlags(Result, SCEV::FlagNSW);
 4459       Result = ScalarEvolution::setFlags(Result, SCEV::FlagNUW);
 4586                                bool &Signed, ScalarEvolution &SE) {
 5538                              ScalarEvolution::RangeSignHint SignHint) {
 5540       SignHint == ScalarEvolution::HINT_RANGE_UNSIGNED ? UnsignedRanges
 5543       SignHint == ScalarEvolution::HINT_RANGE_UNSIGNED
 5561     if (SignHint == ScalarEvolution::HINT_RANGE_UNSIGNED)
 5710     if (SignHint == ScalarEvolution::HINT_RANGE_UNSIGNED) {
 5863     explicit SelectPattern(ScalarEvolution &SE, unsigned BitWidth,
 5973     Flags = ScalarEvolution::setFlags(Flags, SCEV::FlagNUW);
 5975     Flags = ScalarEvolution::setFlags(Flags, SCEV::FlagNSW);
 6100 ScalarEvolution::LoopProperties
 6102   using LoopProperties = ScalarEvolution::LoopProperties;
 6645 const ScalarEvolution::BackedgeTakenInfo &
 6662 const ScalarEvolution::BackedgeTakenInfo &
 6893 ScalarEvolution::BackedgeTakenInfo::getExact(const Loop *L, ScalarEvolution *SE,
 6929                                              ScalarEvolution *SE) const {
 6939                                            ScalarEvolution *SE) const {
 6949 ScalarEvolution::BackedgeTakenInfo::getMax(ScalarEvolution *SE) const {
 6962 bool ScalarEvolution::BackedgeTakenInfo::isMaxOrZero(ScalarEvolution *SE) const {
 6970                                                     ScalarEvolution *SE) const {
 7025     ArrayRef<ScalarEvolution::BackedgeTakenInfo::EdgeExitInfo>
 7029   using EdgeExitInfo = ScalarEvolution::BackedgeTakenInfo::EdgeExitInfo;
 7058 ScalarEvolution::BackedgeTakenInfo
 7064   using EdgeExitInfo = ScalarEvolution::BackedgeTakenInfo::EdgeExitInfo;
 7129 ScalarEvolution::ExitLimit
 7169 ScalarEvolution::ExitLimit ScalarEvolution::computeExitLimitFromCond(
 7172   ScalarEvolution::ExitLimitCacheTy Cache(L, ExitIfTrue, AllowPredicates);
 7177 Optional<ScalarEvolution::ExitLimit>
 7209 ScalarEvolution::ExitLimit ScalarEvolution::computeExitLimitFromCondCached(
 7223 ScalarEvolution::ExitLimit ScalarEvolution::computeExitLimitFromCondImpl(
 7355 ScalarEvolution::ExitLimit
 7454 ScalarEvolution::ExitLimit
 7480                                 ScalarEvolution &SE) {
 7490 ScalarEvolution::ExitLimit
 7566 ScalarEvolution::ExitLimit ScalarEvolution::computeShiftCompareExitLimit(
 8394                                                ScalarEvolution &SE) {
 8542 SolveQuadraticAddRecExact(const SCEVAddRecExpr *AddRec, ScalarEvolution &SE) {
 8575                           const ConstantRange &Range, ScalarEvolution &SE) {
 8701 ScalarEvolution::ExitLimit
 8830 ScalarEvolution::ExitLimit
10143 static bool IsKnownPredicateViaAddRecStart(ScalarEvolution &SE,
10177 static bool IsKnownPredicateViaMinOrMax(ScalarEvolution &SE,
10581 ScalarEvolution::ExitLimit
10722 ScalarEvolution::ExitLimit
10797                                                     ScalarEvolution &SE) const {
10868 SCEVAddRecExpr::getPostIncExpr(ScalarEvolution &SE) const {
10905   ScalarEvolution &SE;
10908   SCEVCollectStrides(ScalarEvolution &SE, SmallVectorImpl<const SCEV *> &S)
10980   ScalarEvolution &SE;
10982   SCEVCollectAddRecMultiplies(SmallVectorImpl<const SCEV *> &T, ScalarEvolution &SE)
11053 static bool findArrayDimensionsRec(ScalarEvolution &SE,
11114 static const SCEV *removeConstantFactors(ScalarEvolution &SE, const SCEV *T) {
11393 ScalarEvolution::SCEVCallbackVH::SCEVCallbackVH(Value *V, ScalarEvolution *se)
11421 ScalarEvolution::ScalarEvolution(ScalarEvolution &&Arg)
11481 static void PrintLoopInfo(raw_ostream &OS, ScalarEvolution *SE,
11543 static StringRef loopDispositionToStr(ScalarEvolution::LoopDisposition LD) {
11545   case ScalarEvolution::LoopVariant:
11547   case ScalarEvolution::LoopInvariant:
11549   case ScalarEvolution::LoopComputable:
11562   ScalarEvolution &SE = *const_cast<ScalarEvolution *>(this);
11643 ScalarEvolution::LoopDisposition
11662 ScalarEvolution::LoopDisposition
11750 ScalarEvolution::BlockDisposition
11769 ScalarEvolution::BlockDisposition
11919   ScalarEvolution &SE = *const_cast<ScalarEvolution *>(this);
11920   ScalarEvolution SE2(F, TLI, AC, DT, LI);
11926     SCEVMapper(ScalarEvolution &SE) : SCEVRewriteVisitor<SCEVMapper>(SE) {}
12005 ScalarEvolution ScalarEvolutionAnalysis::run(Function &F,
12035   SE.reset(new ScalarEvolution(
12112   static const SCEV *rewrite(const SCEV *S, const Loop *L, ScalarEvolution &SE,
12163   explicit SCEVPredicateRewriter(const Loop *L, ScalarEvolution &SE,
12285   if (ScalarEvolution::setFlags(ScevFlags, SCEV::FlagNSW) == ScevFlags)
12302                                    ScalarEvolution &SE) {
12307   if (ScalarEvolution::setFlags(StaticFlags, SCEV::FlagNSW) == StaticFlags)
12310   if (ScalarEvolution::setFlags(StaticFlags, SCEV::FlagNUW) == StaticFlags) {
12377 PredicatedScalarEvolution::PredicatedScalarEvolution(ScalarEvolution &SE,
lib/Analysis/ScalarEvolutionExpander.cpp
  244                               const SCEV *Factor, ScalarEvolution &SE,
  318                                 ScalarEvolution &SE) {
  347                          ScalarEvolution &SE) {
  841           NWFlags = ScalarEvolution::clearFlags(NWFlags, SCEV::FlagNSW);
  876                               ScalarEvolution &SE) {
 1096 static bool canBeCheaplyTransformed(ScalarEvolution &SE,
 1127 static bool IsIncrementNSW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) {
 1141 static bool IsIncrementNUW(ScalarEvolution &SE, const SCEVAddRecExpr *AR) {
 1778 ScalarEvolution::ValueOffsetPair
 1781   SetVector<ScalarEvolution::ValueOffsetPair> *Set = SE.getSCEVValues(S);
 1876   ScalarEvolution::ValueOffsetPair VO = FindValueInExprValueMap(S, InsertPt);
 2086   Optional<ScalarEvolution::ValueOffsetPair> VO =
 2093 Optional<ScalarEvolution::ValueOffsetPair>
 2120   ScalarEvolution::ValueOffsetPair VO = FindValueInExprValueMap(S, At);
 2397   ScalarEvolution &SE;
 2400   SCEVFindUnsafe(ScalarEvolution &se): SE(se), IsUnsafe(false) {}
 2424 bool isSafeToExpand(const SCEV *S, ScalarEvolution &SE) {
 2431                       ScalarEvolution &SE) {
lib/Analysis/ScalarEvolutionNormalization.cpp
   39                                ScalarEvolution &SE)
   98                                          ScalarEvolution &SE) {
  106                                            ScalarEvolution &SE) {
  112                                            ScalarEvolution &SE) {
lib/Analysis/StackSafetyAnalysis.cpp
   33   AllocaOffsetRewriter(ScalarEvolution &SE, const Value *AllocaPtr)
  205   ScalarEvolution &SE;
  223   StackSafetyLocalAnalysis(const Function &F, ScalarEvolution &SE)
lib/Analysis/TargetTransformInfo.cpp
   56 bool HardwareLoopInfo::isHardwareLoopCandidate(ScalarEvolution &SE,
  240   Loop *L, ScalarEvolution &SE, AssumptionCache &AC,
  246     Loop *L, ScalarEvolution &SE, UnrollingPreferences &UP) const {
  277                                      ScalarEvolution *SE, LoopInfo *LI,
  710                                                    ScalarEvolution *SE,
lib/Analysis/VectorUtils.cpp
  152 Value *llvm::stripGetElementPtr(Value *Ptr, ScalarEvolution *SE, Loop *Lp) {
  185 Value *llvm::getStrideFromPointer(Value *Ptr, ScalarEvolution *SE, Loop *Lp) {
lib/CodeGen/HardwareLoops.cpp
  110     ScalarEvolution *SE = nullptr;
  145     HardwareLoop(HardwareLoopInfo &Info, ScalarEvolution &SE,
  158     ScalarEvolution &SE;
lib/CodeGen/SafeStack.cpp
  109   AllocaOffsetRewriter(ScalarEvolution &SE, const Value *AllocaPtr)
  128   ScalarEvolution &SE;
  207             ScalarEvolution &SE)
  886     ScalarEvolution SE(F, TLI, ACT, DT, LI);
lib/Target/AArch64/AArch64FalkorHWPFFix.cpp
   70   FalkorMarkStridedAccesses(LoopInfo &LI, ScalarEvolution &SE)
   79   ScalarEvolution &SE;
  130   ScalarEvolution &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
lib/Target/AArch64/AArch64TargetTransformInfo.cpp
  572 int AArch64TTIImpl::getAddressComputationCost(Type *Ty, ScalarEvolution *SE,
  721 getFalkorUnrollingPreferences(Loop *L, ScalarEvolution &SE,
  768 void AArch64TTIImpl::getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/AArch64/AArch64TargetTransformInfo.h
  129   int getAddressComputationCost(Type *Ty, ScalarEvolution *SE, const SCEV *Ptr);
  142   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp
   91 void AMDGPUTTIImpl::getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
  691 void GCNTTIImpl::getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
  827 void R600TTIImpl::getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
   62   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
  138   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
  240   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/ARM/ARMParallelDSP.cpp
  212     ScalarEvolution   *SE;
  303                                   const DataLayout &DL, ScalarEvolution &SE) {
lib/Target/ARM/ARMTargetTransformInfo.cpp
  473 int ARMTTIImpl::getAddressComputationCost(Type *Ty, ScalarEvolution *SE,
  848 bool ARMTTIImpl::isHardwareLoopProfitable(Loop *L, ScalarEvolution &SE,
 1003 void ARMTTIImpl::getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/ARM/ARMTargetTransformInfo.h
  181   int getAddressComputationCost(Type *Val, ScalarEvolution *SE,
  202   bool isHardwareLoopProfitable(Loop *L, ScalarEvolution &SE,
  207   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/ARM/MVETailPredication.cpp
   53   ScalarEvolution *SE = nullptr;
lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
  158     ScalarEvolution *SE;
  560         ScalarEvolution &se)
  618     ScalarEvolution &SE;
lib/Target/Hexagon/HexagonTargetTransformInfo.cpp
   78 void HexagonTTIImpl::getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
  150       ScalarEvolution *SE, const SCEV *S) {
lib/Target/Hexagon/HexagonTargetTransformInfo.h
   64   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
  113   unsigned getAddressComputationCost(Type *Tp, ScalarEvolution *SE,
lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp
  142 void NVPTXTTIImpl::getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/NVPTX/NVPTXTargetTransformInfo.h
   96   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/PowerPC/PPCLoopPreIncPrep.cpp
  111     ScalarEvolution *SE;
lib/Target/PowerPC/PPCTargetTransformInfo.cpp
  496 bool PPCTTIImpl::isHardwareLoopProfitable(Loop *L, ScalarEvolution &SE,
  555 void PPCTTIImpl::getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
  941 bool PPCTTIImpl::canSaveCmp(Loop *L, BranchInst **BI, ScalarEvolution *SE,
lib/Target/PowerPC/PPCTargetTransformInfo.h
   56   bool isHardwareLoopProfitable(Loop *L, ScalarEvolution &SE,
   60   bool canSaveCmp(Loop *L, BranchInst **BI, ScalarEvolution *SE, LoopInfo *LI,
   63   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/SystemZ/SystemZTargetTransformInfo.cpp
  240 void SystemZTTIImpl::getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/SystemZ/SystemZTargetTransformInfo.h
   49   void getUnrollingPreferences(Loop *L, ScalarEvolution &SE,
lib/Target/X86/X86TargetTransformInfo.cpp
 2507 int X86TTIImpl::getAddressComputationCost(Type *Ty, ScalarEvolution *SE,
lib/Target/X86/X86TargetTransformInfo.h
  143   int getAddressComputationCost(Type *PtrTy, ScalarEvolution *SE,
lib/Transforms/Instrumentation/BoundsChecking.cpp
   59                                  BuilderTy &IRB, ScalarEvolution &SE) {
  143                               ScalarEvolution &SE) {
  210   auto &SE = AM.getResult<ScalarEvolutionAnalysis>(F);
  228     auto &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
   94                                     ScalarEvolution *SE) {
  127                                 ScalarEvolution *SE) {
  378   ScalarEvolution *SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE();
  385                                            ScalarEvolution *SE_,
  402   ScalarEvolution &SE = AM.getResult<ScalarEvolutionAnalysis>(F);
lib/Transforms/Scalar/IndVarSimplify.cpp
  137   ScalarEvolution *SE;
  169   IndVarSimplify(LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT,
  894 static void visitIVCast(CastInst *Cast, WideIVInfo &WI, ScalarEvolution *SE,
  973   ScalarEvolution *SE;
 1027   WidenIV(const WideIVInfo &WI, LoopInfo *LInfo, ScalarEvolution *SEv,
 1937   ScalarEvolution *SE;
 1944   IndVarSimplifyVisitor(PHINode *IV, ScalarEvolution *SCEV,
 2220                           ScalarEvolution *SE) {
 2249                                 ScalarEvolution *SE, DominatorTree *DT) {
 2333                            SCEVExpander &Rewriter, ScalarEvolution *SE) {
 2656 static const SCEV* getMaxBackedgeTakenCount(ScalarEvolution &SE,
 2669                                   ScalarEvolution::ConstantMaximum);
 3168     auto *SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE();
lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
  147   static bool parseRangeCheckICmp(Loop *L, ICmpInst *ICI, ScalarEvolution &SE,
  152   extractRangeChecksFromCond(Loop *L, ScalarEvolution &SE, Use &ConditionUse,
  197     bool isEmpty(ScalarEvolution &SE, bool IsSigned) const {
  214   Optional<Range> computeSafeIterationSpace(ScalarEvolution &SE,
  224   extractRangeChecksFromBranch(BranchInst *BI, Loop *L, ScalarEvolution &SE,
  230   ScalarEvolution &SE;
  236   InductiveRangeCheckElimination(ScalarEvolution &SE,
  277                                          ScalarEvolution &SE, Value *&Index,
  336     Loop *L, ScalarEvolution &SE, Use &ConditionUse,
  392     BranchInst *BI, Loop *L, ScalarEvolution &SE, BranchProbabilityInfo *BPI,
  490   static Optional<LoopStructure> parseLoopStructure(ScalarEvolution &,
  603   ScalarEvolution &SE;
  628                   const LoopStructure &LS, ScalarEvolution &SE,
  646                                   Loop *L, ScalarEvolution &SE) {
  696                                   Loop *L, ScalarEvolution &SE) {
  736 LoopStructure::parseLoopStructure(ScalarEvolution &SE,
 1041 static const SCEV *NoopOrExtend(const SCEV *S, Type *Ty, ScalarEvolution &SE,
 1567     ScalarEvolution &SE, const SCEVAddRecExpr *IndVar,
 1692 IntersectSignedRange(ScalarEvolution &SE,
 1721 IntersectUnsignedRange(ScalarEvolution &SE,
 1772   ScalarEvolution &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
lib/Transforms/Scalar/LICM.cpp
  172                  ScalarEvolution *SE, MemorySSA *MSSA,
  328     TargetLibraryInfo *TLI, TargetTransformInfo *TTI, ScalarEvolution *SE,
lib/Transforms/Scalar/LoopDataPrefetch.cpp
   63   LoopDataPrefetch(AssumptionCache *AC, LoopInfo *LI, ScalarEvolution *SE,
   97   ScalarEvolution *SE;
  159   ScalarEvolution *SE = &AM.getResult<ScalarEvolutionAnalysis>(F);
  183   ScalarEvolution *SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE();
lib/Transforms/Scalar/LoopDeletion.cpp
   42 static bool isLoopDead(Loop *L, ScalarEvolution &SE,
  136                                            ScalarEvolution &SE, LoopInfo &LI) {
  255   ScalarEvolution &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
lib/Transforms/Scalar/LoopDistribute.cpp
  659                         ScalarEvolution *SE, OptimizationRemarkEmitter *ORE)
  959   ScalarEvolution *SE;
  975                     ScalarEvolution *SE, OptimizationRemarkEmitter *ORE,
 1022     auto *SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE();
 1048   auto &SE = AM.getResult<ScalarEvolutionAnalysis>(F);
lib/Transforms/Scalar/LoopFuse.cpp
  287   bool isEligibleForFusion(ScalarEvolution &SE) const {
  509   ScalarEvolution &SE;
  515             ScalarEvolution &SE, PostDominatorTree &PDT,
  841     AddRecLoopReplacer(ScalarEvolution &SE, const Loop &OldL, const Loop &NewL,
 1590     auto &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
 1605   auto &SE = AM.getResult<ScalarEvolutionAnalysis>(F);
lib/Transforms/Scalar/LoopIdiomRecognize.cpp
  145   ScalarEvolution *SE;
  155                               LoopInfo *LI, ScalarEvolution *SE,
  274     ScalarEvolution *SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE();
  895                                         ScalarEvolution *SE) {
  909                                const DataLayout *DL, ScalarEvolution *SE) {
lib/Transforms/Scalar/LoopInterchange.cpp
  295 static PHINode *getInductionVariable(Loop *L, ScalarEvolution *SE) {
  327   LoopInterchangeLegality(Loop *Outer, Loop *Inner, ScalarEvolution *SE,
  360   ScalarEvolution *SE;
  374   LoopInterchangeProfitability(Loop *Outer, Loop *Inner, ScalarEvolution *SE,
  389   ScalarEvolution *SE;
  398   LoopInterchangeTransform(Loop *Outer, Loop *Inner, ScalarEvolution *SE,
  421   ScalarEvolution *SE;
  433   ScalarEvolution *SE = nullptr;
lib/Transforms/Scalar/LoopLoadElimination.cpp
  691   auto &SE = AM.getResult<ScalarEvolutionAnalysis>(F);
lib/Transforms/Scalar/LoopPredication.cpp
  251   ScalarEvolution *SE;
  304   LoopPredication(AliasAnalysis *AA, ScalarEvolution *SE,
  325     auto *SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE();
  426                                        ScalarEvolution &SE,
  461                                                  ScalarEvolution &SE,
  648 static void normalizePredicate(ScalarEvolution *SE, Loop *L,
lib/Transforms/Scalar/LoopRerollPass.cpp
  181     ScalarEvolution *SE;
  379                      ScalarEvolution *SE, AliasAnalysis *AA,
  433       ScalarEvolution *SE;
lib/Transforms/Scalar/LoopRotation.cpp
   98     auto &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
lib/Transforms/Scalar/LoopSimplifyCFG.cpp
  120   ScalarEvolution &SE;
  525                                 ScalarEvolution &SE,
  624                                     ScalarEvolution &SE,
  670                             ScalarEvolution &SE, MemorySSAUpdater *MSSAU,
  724     ScalarEvolution &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
lib/Transforms/Scalar/LoopSink.cpp
  254                                           ScalarEvolution *SE) {
lib/Transforms/Scalar/LoopStrengthReduce.cpp
  363   void initialMatch(const SCEV *S, Loop *L, ScalarEvolution &SE);
  392                            ScalarEvolution &SE) {
  443 void Formula::initialMatch(const SCEV *S, Loop *L, ScalarEvolution &SE) {
  630 static bool isAddRecSExtable(const SCEVAddRecExpr *AR, ScalarEvolution &SE) {
  638 static bool isAddSExtable(const SCEVAddExpr *A, ScalarEvolution &SE) {
  646 static bool isMulSExtable(const SCEVMulExpr *M, ScalarEvolution &SE) {
  659                                 ScalarEvolution &SE,
  745 static int64_t ExtractImmediate(const SCEV *&S, ScalarEvolution &SE) {
  771 static GlobalValue *ExtractSymbol(const SCEV *&S, ScalarEvolution &SE) {
  883 static bool isExistingPhi(const SCEVAddRecExpr *AR, ScalarEvolution &SE) {
  905                                 ScalarEvolution &SE) {
 1019   ScalarEvolution *SE = nullptr;
 1025   Cost(const Loop *L, ScalarEvolution &SE, const TargetTransformInfo &TTI) :
 1818                              ScalarEvolution &SE, int64_t MinOffset,
 1897                              ScalarEvolution&);
 1911   ScalarEvolution &SE;
 2053   LSRInstance(Loop *L, IVUsers &IU, ScalarEvolution &SE, DominatorTree &DT,
 2719               Loop *L, ScalarEvolution &SE) {
 2805                                     ScalarEvolution &SE) {
 2834                   ScalarEvolution &SE) {
 3488                                    ScalarEvolution &SE,
 3545                               ScalarEvolution &SE) {
 5495 LSRInstance::LSRInstance(Loop *L, IVUsers &IU, ScalarEvolution &SE,
 5706 static bool ReduceLoopStrength(Loop *L, IVUsers &IU, ScalarEvolution &SE,
 5741   auto &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp
  155     LoopInfo *LI, ScalarEvolution &SE,
  278                       ScalarEvolution &SE, const TargetTransformInfo &TTI,
  448     ScalarEvolution &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
lib/Transforms/Scalar/LoopUnrollPass.cpp
  177     Loop *L, ScalarEvolution &SE, const TargetTransformInfo &TTI,
  334     const Loop *L, unsigned TripCount, DominatorTree &DT, ScalarEvolution &SE,
  738     ScalarEvolution &SE, const SmallPtrSetImpl<const Value *> &EphValues,
 1012     Loop *L, DominatorTree &DT, LoopInfo *LI, ScalarEvolution &SE,
 1227     ScalarEvolution &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
 1411   auto &SE = AM.getResult<ScalarEvolutionAnalysis>(F);
lib/Transforms/Scalar/LoopVersioningLICM.cpp
  170   ScalarEvolution *SE = nullptr;
lib/Transforms/Scalar/NaryReassociate.cpp
  172   auto *SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE();
  183   auto *SE = &AM.getResult<ScalarEvolutionAnalysis>(F);
  197                                   DominatorTree *DT_, ScalarEvolution *SE_,
lib/Transforms/Scalar/PlaceSafepoints.cpp
  112   ScalarEvolution *SE = nullptr;
  240 static bool mustBeFiniteCountedLoop(Loop *L, ScalarEvolution *SE,
lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
  449   ScalarEvolution *SE;
lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
  350                                   LoopInfo &LI, ScalarEvolution *SE,
  573                                   LoopInfo &LI, ScalarEvolution *SE,
  852                                          LoopInfo &LI, ScalarEvolution *SE,
 1905     ScalarEvolution *SE, MemorySSAUpdater *MSSAU) {
 2527                       ScalarEvolution *SE, MemorySSAUpdater *MSSAU) {
 2805                          ScalarEvolution *SE, MemorySSAUpdater *MSSAU) {
 2943   auto *SE = SEWP ? &SEWP->getSE() : nullptr;
lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
  233   ScalarEvolution *SE;
lib/Transforms/Utils/LCSSA.cpp
  321                      ScalarEvolution *SE) {
  386                                 ScalarEvolution *SE) {
  399                                 ScalarEvolution *SE) {
  416   ScalarEvolution *SE;
  482   auto *SE = AM.getCachedResult<ScalarEvolutionAnalysis>(F);
lib/Transforms/Utils/LoopRotationUtils.cpp
   57   ScalarEvolution *SE;
   66              DominatorTree *DT, ScalarEvolution *SE, MemorySSAUpdater *MSSAU,
  657                         ScalarEvolution *SE, MemorySSAUpdater *MSSAU,
lib/Transforms/Utils/LoopSimplify.cpp
  226                                 ScalarEvolution *SE, bool PreserveLCSSA,
  473                             ScalarEvolution *SE, AssumptionCache *AC,
  710                         ScalarEvolution *SE, AssumptionCache *AC,
  802   ScalarEvolution *SE = SEWP ? &SEWP->getSE() : nullptr;
  836   ScalarEvolution *SE = AM.getCachedResult<ScalarEvolutionAnalysis>(F);
lib/Transforms/Utils/LoopUnroll.cpp
  200                                    ScalarEvolution *SE, DominatorTree *DT,
  277                                   ScalarEvolution *SE, DominatorTree *DT,
lib/Transforms/Utils/LoopUnrollAndJam.cpp
  175     bool UnrollRemainder, LoopInfo *LI, ScalarEvolution *SE, DominatorTree *DT,
  687 bool llvm::isSafeToUnrollAndJam(Loop *L, ScalarEvolution &SE, DominatorTree &DT,
lib/Transforms/Utils/LoopUnrollPeel.cpp
  173                                          ScalarEvolution &SE) {
  261                             unsigned &TripCount, ScalarEvolution &SE) {
  579                     ScalarEvolution *SE, DominatorTree *DT,
lib/Transforms/Utils/LoopUnrollRuntime.cpp
  549                                       LoopInfo *LI, ScalarEvolution *SE,
lib/Transforms/Utils/LoopUtils.cpp
  507                           ScalarEvolution *SE = nullptr,
  721                                               ScalarEvolution &SE) {
  734   ScalarEvolution::LoopDisposition LD =
  736   if (LD != ScalarEvolution::LoopInvariant)
  999                                  ScalarEvolution &SE) {
 1006                                     ScalarEvolution &SE) {
 1012 bool llvm::cannotBeMinInLoop(const SCEV *S, const Loop *L, ScalarEvolution &SE,
 1023 bool llvm::cannotBeMaxInLoop(const SCEV *S, const Loop *L, ScalarEvolution &SE,
lib/Transforms/Utils/LoopVersioning.cpp
   33                                DominatorTree *DT, ScalarEvolution *SE,
  266     auto *SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE();
lib/Transforms/Utils/SimplifyIndVar.cpp
   55     ScalarEvolution  *SE;
   63     SimplifyIndvar(Loop *Loop, ScalarEvolution *SE, DominatorTree *DT,
  405 static bool willNotOverflow(ScalarEvolution *SE, Instruction::BinaryOps BinOp,
  413     Operation = &ScalarEvolution::getAddExpr;
  416     Operation = &ScalarEvolution::getMinusSCEV;
  419     Operation = &ScalarEvolution::getMulExpr;
  424       Signed ? &ScalarEvolution::getSignExtendExpr
  425              : &ScalarEvolution::getZeroExtendExpr;
  825 static bool isSimpleIVUser(Instruction *I, const Loop *L, ScalarEvolution *SE) {
  933 bool simplifyUsersOfIV(PHINode *CurrIV, ScalarEvolution *SE, DominatorTree *DT,
  944 bool simplifyLoopIVs(Loop *L, ScalarEvolution *SE, DominatorTree *DT,
lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
  115   ScalarEvolution &SE;
  122              ScalarEvolution &SE, TargetTransformInfo &TTI)
  256   ScalarEvolution &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
  271   ScalarEvolution &SE = AM.getResult<ScalarEvolutionAnalysis>(F);
lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
  704         auto *SE = PSE.getSE();
  954     ScalarEvolution &SE = *PSE.getSE();
lib/Transforms/Vectorize/LoopVectorize.cpp
  365 static Optional<unsigned> getSmallBestKnownTC(ScalarEvolution &SE, Loop *L) {
  639   Value *emitTransformedIndex(IRBuilder<> &B, Value *Index, ScalarEvolution *SE,
 1600     auto *SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE();
 2561   ScalarEvolution *SE = PSE.getSE();
 2796     IRBuilder<> &B, Value *Index, ScalarEvolution *SE, const DataLayout &DL,
 4179     auto *SE = PSE.getSE();
 7802     Function &F, ScalarEvolution &SE_, LoopInfo &LI_, TargetTransformInfo &TTI_,
 7869     auto &SE = AM.getResult<ScalarEvolutionAnalysis>(F);
lib/Transforms/Vectorize/SLPVectorizer.cpp
  502   BoUpSLP(Function *Func, ScalarEvolution *Se, TargetTransformInfo *Tti,
  723     ScalarEvolution &SE;
  962                ScalarEvolution &SE)
 1192                                              ScalarEvolution &SE);
 1953   ScalarEvolution *SE;
 3544     ScalarEvolution &SE) {
 5208     auto *SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE();
 5243   auto *SE = &AM.getResult<ScalarEvolutionAnalysis>(F);
 5264 bool SLPVectorizerPass::runImpl(Function &F, ScalarEvolution *SE_,
tools/polly/include/polly/CodeGen/BlockGenerators.h
   67   BlockGenerator(PollyIRBuilder &Builder, LoopInfo &LI, ScalarEvolution &SE,
  134   ScalarEvolution &SE;
tools/polly/include/polly/CodeGen/IRBuilder.h
   98   llvm::ScalarEvolution *SE;
tools/polly/include/polly/CodeGen/IslExprBuilder.h
  124                  llvm::ScalarEvolution &SE, llvm::DominatorTree &DT,
  205   llvm::ScalarEvolution &SE;
tools/polly/include/polly/CodeGen/IslNodeBuilder.h
   36   ScalarEvolution &SE;
   69                  const DataLayout &DL, LoopInfo &LI, ScalarEvolution &SE,
  155   ScalarEvolution &SE;
tools/polly/include/polly/ScopBuilder.h
   50   ScalarEvolution &SE;
  816                        ScopDetection &SD, ScalarEvolution &SE,
tools/polly/include/polly/ScopDetection.h
  194   ScalarEvolution &SE;
  479   countBeneficialSubLoops(Loop *L, ScalarEvolution &SE,
  517   ScopDetection(Function &F, const DominatorTree &DT, ScalarEvolution &SE,
  598   countBeneficialLoops(Region *R, ScalarEvolution &SE, LoopInfo &LI,
tools/polly/include/polly/ScopInfo.h
 1730   ScalarEvolution *SE;
 1946   Scop(Region &R, ScalarEvolution &SE, LoopInfo &LI, DominatorTree &DT,
 2102   ScalarEvolution *getSE() const;
 2809   ScalarEvolution &SE;
 2817   ScopInfo(const DataLayout &DL, ScopDetection &SD, ScalarEvolution &SE,
tools/polly/include/polly/ScopPass.h
  175   ScalarEvolution &SE;
tools/polly/include/polly/Support/SCEVAffinator.h
   63   llvm::ScalarEvolution &SE;
tools/polly/include/polly/Support/SCEVValidator.h
   53 void findValues(const llvm::SCEV *Expr, llvm::ScalarEvolution &SE,
   68                   const llvm::SCEV *Expression, llvm::ScalarEvolution &SE,
   73                         llvm::Loop *Scope, llvm::ScalarEvolution &SE,
   78                                      llvm::ScalarEvolution &SE);
   87 extractConstantFactor(const llvm::SCEV *M, llvm::ScalarEvolution &SE);
   96                                        llvm::ScalarEvolution &SE,
tools/polly/include/polly/Support/ScopHelper.h
  347 llvm::Value *expandCodeFor(Scop &S, llvm::ScalarEvolution &SE,
  415                      llvm::ScalarEvolution &SE, const llvm::DominatorTree &DT,
  436                    llvm::ScalarEvolution *SE, llvm::Loop *Scope);
  461                            llvm::ScalarEvolution &SE);
tools/polly/lib/Analysis/ScopBuilder.cpp
 2322 static bool isDivisible(const SCEV *Expr, unsigned Size, ScalarEvolution &SE) {
 3752                          ScopDetection &SD, ScalarEvolution &SE,
tools/polly/lib/Analysis/ScopDetection.cpp
  330                              ScalarEvolution &SE, LoopInfo &LI, RegionInfo &RI,
  826   SCEVRemoveMax(ScalarEvolution &SE, std::vector<const SCEV *> *Terms)
  829   static const SCEV *rewrite(const SCEV *Scev, ScalarEvolution &SE,
 1338 ScopDetection::countBeneficialSubLoops(Loop *L, ScalarEvolution &SE,
 1360 ScopDetection::countBeneficialLoops(Region *R, ScalarEvolution &SE,
 1855   auto &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
 1902   auto &SE = FAM.getResult<ScalarEvolutionAnalysis>(F);
tools/polly/lib/Analysis/ScopInfo.cpp
  208   ScalarEvolution &SE = *S->getSE();
  728   ScalarEvolution *SE = Statement->getParent()->getSE();
 1393                                  ScalarEvolution &SE)
 1396   static const SCEV *rewrite(const SCEV *E, ScalarEvolution &SE,
 1424   SCEVFindInsideScop(const ValueToValueMap &VMap, ScalarEvolution &SE,
 1428   static bool hasVariant(const SCEV *E, ScalarEvolution &SE,
 1698 Scop::Scop(Region &R, ScalarEvolution &ScalarEvolution, LoopInfo &LI,
 2367 ScalarEvolution *Scop::getSE() const { return SE; }
 2671   auto &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
 2719 ScopInfo::ScopInfo(const DataLayout &DL, ScopDetection &SD, ScalarEvolution &SE,
 2769   auto &SE = FAM.getResult<ScalarEvolutionAnalysis>(F);
 2807   auto &SE = getAnalysis<ScalarEvolutionWrapperPass>().getSE();
tools/polly/lib/CodeGen/BlockGenerators.cpp
   57     PollyIRBuilder &B, LoopInfo &LI, ScalarEvolution &SE, DominatorTree &DT,
tools/polly/lib/CodeGen/CodeGeneration.cpp
  169                     ScalarEvolution &SE, RegionInfo &RI) {
  317   ScalarEvolution *SE;
tools/polly/lib/CodeGen/IslExprBuilder.cpp
   41                                const DataLayout &DL, ScalarEvolution &SE,
tools/polly/lib/CodeGen/IslNodeBuilder.cpp
  916     ScalarEvolution *SE = Stmt->getParent()->getSE();
tools/polly/lib/Support/SCEVValidator.cpp
  137   ScalarEvolution &SE;
  141   SCEVValidator(const Region *R, Loop *Scope, ScalarEvolution &SE,
  579   ScalarEvolution &SE;
  583   SCEVFindValues(ScalarEvolution &SE, SetVector<Value *> &Values)
  612 void findValues(const SCEV *Expr, ScalarEvolution &SE,
  636                   ScalarEvolution &SE, InvariantLoadsSetTy *ILS) {
  660                          ScalarEvolution &SE, ParameterSetTy &Params) {
  677                         ScalarEvolution &SE, ParameterSetTy &Params,
  700                                      const SCEV *Expr, ScalarEvolution &SE) {
  713 extractConstantFactor(const SCEV *S, ScalarEvolution &SE) {
  773                                  ScalarEvolution &SE, LoopInfo &LI,
tools/polly/lib/Support/ScopHelper.cpp
  233   explicit ScopExpander(const Region &R, ScalarEvolution &SE,
  261   ScalarEvolution &SE;
  394 Value *polly::expandCodeFor(Scop &S, ScalarEvolution &SE, const DataLayout &DL,
  539                             ScalarEvolution &SE) {
  550                             ScalarEvolution &SE, const DominatorTree &DT,
  636 bool polly::canSynthesize(const Value *V, const Scop &S, ScalarEvolution *SE,
  662 polly::getIndexExpressionsFromGEP(GetElementPtrInst *GEP, ScalarEvolution &SE) {
tools/polly/lib/Support/VirtualInstruction.cpp
   65   auto *SE = S->getSE();
tools/polly/lib/Transform/CodePreparation.cpp
   38   ScalarEvolution *SE;
unittests/Analysis/IVDescriptorsTest.cpp
   24     function_ref<void(Function &F, LoopInfo &LI, ScalarEvolution &SE)> Test) {
   33   ScalarEvolution SE(*F, TLI, AC, DT, LI);
unittests/Analysis/LoopInfoTest.cpp
   35     function_ref<void(Function &F, LoopInfo &LI, ScalarEvolution &SE)> Test) {
   44   ScalarEvolution SE(*F, TLI, AC, DT, LI);
unittests/Analysis/ScalarEvolutionTest.cpp
   45   ScalarEvolution buildSE(Function &F) {
   54       function_ref<void(Function &F, LoopInfo &LI, ScalarEvolution &SE)> Test) {
   57     ScalarEvolution SE = buildSE(*F);
   61   static Optional<APInt> computeConstantDifference(ScalarEvolution &SE,
   81   ScalarEvolution SE = buildSE(*F);
  132   ScalarEvolution SE = buildSE(*F);
  192   ScalarEvolution SE = buildSE(*F);
  396   ScalarEvolution SE = buildSE(*F);
  433   ScalarEvolution SE = buildSE(*F);
  467   ScalarEvolution SE = buildSE(*F);
  716   ScalarEvolution SE = buildSE(*F);
  785   ScalarEvolution SE = buildSE(*F);
  859   ScalarEvolution SE = buildSE(*F);
  959   ScalarEvolution SE = buildSE(*F);
 1028   ScalarEvolution SE = buildSE(*F);
 1086   ScalarEvolution SE = buildSE(*F);
 1106   ScalarEvolution SE = buildSE(*F);
 1185   ScalarEvolution SE = buildSE(*F);
 1240   ScalarEvolution SE = buildSE(*F);
 1292   ScalarEvolution SE = buildSE(*F);
 1337   ScalarEvolution SE = buildSE(*F);
 1388   ScalarEvolution SE = buildSE(*F);
 1438   ScalarEvolution SE = buildSE(*F);
 1662     ScalarEvolution SE = buildSE(*F);
unittests/Analysis/UnrollAnalyzerTest.cpp
   28     ScalarEvolution *SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE();
unittests/Transforms/Utils/UnrollLoopTest.cpp
   67   ScalarEvolution SE(*F, TLI, AC, DT, LI);
unittests/Transforms/Vectorize/VPlanSlpTest.cpp
   26   std::unique_ptr<ScalarEvolution> SE;
   42     SE.reset(new ScalarEvolution(F, TLI, *AC, *DT, *LI));
usr/include/c++/7.4.0/bits/move.h
   72     constexpr _Tp&&
   73     forward(typename std::remove_reference<_Tp>::type& __t) noexcept
   83     constexpr _Tp&&
   84     forward(typename std::remove_reference<_Tp>::type&& __t) noexcept
   98     move(_Tp&& __t) noexcept
usr/include/c++/7.4.0/bits/std_function.h
  299       _M_invoke(const _Any_data& __functor, _ArgTypes&&... __args)
  628       using _Invoker_type = _Res (*)(const _Any_data&, _ArgTypes&&...);
usr/include/c++/7.4.0/bits/unique_ptr.h
   68         default_delete(const default_delete<_Up>&) noexcept { }
   72       operator()(_Tp* __ptr) const
   74 	static_assert(!is_void<_Tp>::value,
   76 	static_assert(sizeof(_Tp)>0,
  122 	  using type = _Up*;
  137       using pointer = typename _Ptr<_Tp, _Dp>::type;
  161 	typename __uniq_ptr_impl<_Tp, _Up>::_DeleterConstraint::type;
  163       __uniq_ptr_impl<_Tp, _Dp> _M_t;
  166       using pointer	  = typename __uniq_ptr_impl<_Tp, _Dp>::pointer;
  167       using element_type  = _Tp;
  824     make_unique(_Args&&... __args)
  825     { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
usr/include/c++/7.4.0/type_traits
  215     : public __is_void_helper<typename remove_cv<_Tp>::type>::type
  581     : public __or_<is_lvalue_reference<_Tp>,
  582                    is_rvalue_reference<_Tp>>::type
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  601     : public __not_<__or_<is_function<_Tp>, is_reference<_Tp>,
  602                           is_void<_Tp>>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
  638     : public __or_<is_object<_Tp>, is_reference<_Tp>>::type
 1554     { typedef _Tp     type; };
 1563     { typedef _Tp     type; };
 1574       remove_const<typename remove_volatile<_Tp>::type>::type     type;
 1629     { typedef _Tp   type; };
 1633     { typedef _Tp   type; };
 1645     { typedef _Tp&   type; };
 1650     : public __add_lvalue_reference_helper<_Tp>
 1659     { typedef _Tp&&   type; };
 1664     : public __add_rvalue_reference_helper<_Tp>
 2253     inline typename add_rvalue_reference<_Tp>::type