]> granicus.if.org Git - llvm/commitdiff
[LAA] Default getInfo to not speculate symbolic strides. NFC
authorAdam Nemet <anemet@apple.com>
Thu, 16 Jun 2016 08:26:56 +0000 (08:26 +0000)
committerAdam Nemet <anemet@apple.com>
Thu, 16 Jun 2016 08:26:56 +0000 (08:26 +0000)
Soon we won't be passing Strides to getInfo and then we'll have fewer
call sites to update.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@272878 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Analysis/LoopAccessAnalysis.h
lib/Analysis/LoopAccessAnalysis.cpp
lib/Transforms/Scalar/LoopDistribute.cpp
lib/Transforms/Scalar/LoopLoadElimination.cpp
lib/Transforms/Utils/LoopVersioning.cpp

index 795f4cd746de415599efe14c2281f9aa2e1b476f..21cbdc47fd3a02e84c689bbca4395ecceeac2b51 100644 (file)
@@ -699,7 +699,8 @@ public:
   /// of symbolic strides, \p Strides provides the mapping (see
   /// replaceSymbolicStrideSCEV).  If there is no cached result available run
   /// the analysis.
-  const LoopAccessInfo &getInfo(Loop *L, const ValueToValueMap &Strides);
+  const LoopAccessInfo &
+  getInfo(Loop *L, const ValueToValueMap &Strides = ValueToValueMap());
 
   void releaseMemory() override {
     // Invalidate the cache when the pass is freed.
index ff5bc595da5de153f01dad0c5f3ac7fc52e85871..5da6dbb57e833e08e81547d449d56bf89b134cc4 100644 (file)
@@ -1954,12 +1954,10 @@ LoopAccessAnalysis::getInfo(Loop *L, const ValueToValueMap &Strides) {
 void LoopAccessAnalysis::print(raw_ostream &OS, const Module *M) const {
   LoopAccessAnalysis &LAA = *const_cast<LoopAccessAnalysis *>(this);
 
-  ValueToValueMap NoSymbolicStrides;
-
   for (Loop *TopLevelLoop : *LI)
     for (Loop *L : depth_first(TopLevelLoop)) {
       OS.indent(2) << L->getHeader()->getName() << ":\n";
-      auto &LAI = LAA.getInfo(L, NoSymbolicStrides);
+      auto &LAI = LAA.getInfo(L);
       LAI.print(OS, 4);
     }
 }
index 48405a2b721a0f2885d1e1ba2d4d34d683114403..a62a44be4cc15835d3191a2ff9cdfd89490a7d98 100644 (file)
@@ -608,7 +608,7 @@ public:
       return fail("multiple exit blocks");
 
     // LAA will check that we only have a single exiting block.
-    LAI = &LAA->getInfo(L, ValueToValueMap());
+    LAI = &LAA->getInfo(L);
 
     // Currently, we only distribute to isolate the part of the loop with
     // dependence cycles to enable partial vectorization.
index 8f2b3acabb6ce5b0051d973227c1875d5ad516a7..a0c5798df05725a66eaa41cf681f6791d697630d 100644 (file)
@@ -552,7 +552,7 @@ public:
     // Now walk the identified inner loops.
     bool Changed = false;
     for (Loop *L : Worklist) {
-      const LoopAccessInfo &LAI = LAA->getInfo(L, ValueToValueMap());
+      const LoopAccessInfo &LAI = LAA->getInfo(L);
       // The actual work is performed by LoadEliminationForLoop.
       LoadEliminationForLoop LEL(L, LI, LAI, DT);
       Changed |= LEL.processLoop();
index 65d781b392b954b73c6a8c68ed86855d0f80465a..baf1a87c5f8e7528430dfc3d227cdd7ef57f5add 100644 (file)
@@ -277,7 +277,7 @@ public:
     // Now walk the identified inner loops.
     bool Changed = false;
     for (Loop *L : Worklist) {
-      const LoopAccessInfo &LAI = LAA->getInfo(L, ValueToValueMap());
+      const LoopAccessInfo &LAI = LAA->getInfo(L);
       if (LAI.getNumRuntimePointerChecks() ||
           !LAI.PSE.getUnionPredicate().isAlwaysTrue()) {
         LoopVersioning LVer(LAI, L, LI, DT, SE);