diff options
Diffstat (limited to 'contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp')
| -rw-r--r-- | contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp | 26 | 
1 files changed, 8 insertions, 18 deletions
diff --git a/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp b/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp index 68faa886060a..1752fb75eb1b 100644 --- a/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp +++ b/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp @@ -25,15 +25,13 @@  //===----------------------------------------------------------------------===//  #include "llvm/Transforms/Scalar/IndVarSimplify.h" -#include "llvm/Transforms/Scalar.h"  #include "llvm/ADT/SmallVector.h"  #include "llvm/ADT/Statistic.h"  #include "llvm/Analysis/GlobalsModRef.h"  #include "llvm/Analysis/LoopInfo.h"  #include "llvm/Analysis/LoopPass.h" -#include "llvm/Analysis/LoopPassManager.h" -#include "llvm/Analysis/ScalarEvolutionExpander.h"  #include "llvm/Analysis/ScalarEvolutionAliasAnalysis.h" +#include "llvm/Analysis/ScalarEvolutionExpander.h"  #include "llvm/Analysis/TargetLibraryInfo.h"  #include "llvm/Analysis/TargetTransformInfo.h"  #include "llvm/IR/BasicBlock.h" @@ -49,6 +47,8 @@  #include "llvm/Support/CommandLine.h"  #include "llvm/Support/Debug.h"  #include "llvm/Support/raw_ostream.h" +#include "llvm/Transforms/Scalar.h" +#include "llvm/Transforms/Scalar/LoopPassManager.h"  #include "llvm/Transforms/Utils/BasicBlockUtils.h"  #include "llvm/Transforms/Utils/Local.h"  #include "llvm/Transforms/Utils/LoopUtils.h" @@ -2096,7 +2096,7 @@ static Value *genLoopLimit(PHINode *IndVar, const SCEV *IVCount, Loop *L,      return Builder.CreateGEP(nullptr, GEPBase, GEPOffset, "lftr.limit");    } else {      // In any other case, convert both IVInit and IVCount to integers before -    // comparing. This may result in SCEV expension of pointers, but in practice +    // comparing. This may result in SCEV expansion of pointers, but in practice      // SCEV will fold the pointer arithmetic away as such:      // BECount = (IVEnd - IVInit - 1) => IVLimit = IVInit (postinc).      // @@ -2482,23 +2482,13 @@ bool IndVarSimplify::run(Loop *L) {    return Changed;  } -PreservedAnalyses IndVarSimplifyPass::run(Loop &L, LoopAnalysisManager &AM) { -  auto &FAM = AM.getResult<FunctionAnalysisManagerLoopProxy>(L).getManager(); +PreservedAnalyses IndVarSimplifyPass::run(Loop &L, LoopAnalysisManager &AM, +                                          LoopStandardAnalysisResults &AR, +                                          LPMUpdater &) {    Function *F = L.getHeader()->getParent();    const DataLayout &DL = F->getParent()->getDataLayout(); -  auto *LI = FAM.getCachedResult<LoopAnalysis>(*F); -  auto *SE = FAM.getCachedResult<ScalarEvolutionAnalysis>(*F); -  auto *DT = FAM.getCachedResult<DominatorTreeAnalysis>(*F); - -  assert((LI && SE && DT) && -         "Analyses required for indvarsimplify not available!"); - -  // Optional analyses. -  auto *TTI = FAM.getCachedResult<TargetIRAnalysis>(*F); -  auto *TLI = FAM.getCachedResult<TargetLibraryAnalysis>(*F); - -  IndVarSimplify IVS(LI, SE, DT, DL, TLI, TTI); +  IndVarSimplify IVS(&AR.LI, &AR.SE, &AR.DT, DL, &AR.TLI, &AR.TTI);    if (!IVS.run(&L))      return PreservedAnalyses::all();  | 
