[polly] r287261 - [DBG] Collect statistics about taken assumptions

Johannes Doerfert via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 17 13:41:09 PST 2016


Author: jdoerfert
Date: Thu Nov 17 15:41:08 2016
New Revision: 287261

URL: http://llvm.org/viewvc/llvm-project?rev=287261&view=rev
Log:
[DBG] Collect statistics about taken assumptions

Modified:
    polly/trunk/lib/Analysis/ScopInfo.cpp

Modified: polly/trunk/lib/Analysis/ScopInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/ScopInfo.cpp?rev=287261&r1=287260&r2=287261&view=diff
==============================================================================
--- polly/trunk/lib/Analysis/ScopInfo.cpp (original)
+++ polly/trunk/lib/Analysis/ScopInfo.cpp Thu Nov 17 15:41:08 2016
@@ -61,6 +61,19 @@ using namespace polly;
 
 #define DEBUG_TYPE "polly-scops"
 
+STATISTIC(ASSUMPTION_ALIASING, "Number of aliasing assumptions taken.");
+STATISTIC(ASSUMPTION_INBOUNDS, "Number of inbounds assumptions taken.");
+STATISTIC(ASSUMPTION_WRAPPING, "Number of wrapping assumptions taken.");
+STATISTIC(ASSUMPTION_UNSIGNED, "Number of unsigned assumptions taken.");
+STATISTIC(ASSUMPTION_COMPLEXITY, "Number of too complex SCoPs.");
+STATISTIC(ASSUMPTION_UNPROFITABLE, "Number of unprofitable SCoPs.");
+STATISTIC(ASSUMPTION_ERRORBLOCK, "Number of error block assumptions taken.");
+STATISTIC(ASSUMPTION_INFINITELOOP, "Number of bounded loop assumptions taken.");
+STATISTIC(ASSUMPTION_INVARIANTLOAD,
+          "Number of invariant loads assumptions taken.");
+STATISTIC(ASSUMPTION_DELINERIZATION,
+          "Number of delinearization assumptions taken.");
+
 // The maximal number of basic sets we allow during domain construction to
 // be created. More complex scops will result in very high compile time and
 // are also unlikely to result in good code
@@ -2890,8 +2903,13 @@ bool Scop::buildAliasChecks(AliasAnalysi
   if (!PollyUseRuntimeAliasChecks)
     return true;
 
-  if (buildAliasGroups(AA))
+  if (buildAliasGroups(AA)) {
+    // Aliasing assumptions do not go through addAssumption but we still want to
+    // collect statistics so we do it here explicitly.
+    if (MinMaxAliasGroups.size())
+      ASSUMPTION_ALIASING++;
     return true;
+  }
 
   // If a problem occurs while building the alias groups we need to delete
   // this SCoP and pretend it wasn't valid in the first place. To this end
@@ -3740,6 +3758,39 @@ bool Scop::trackAssumption(AssumptionKin
   if (PollyRemarksMinimal && !isEffectiveAssumption(Set, Sign))
     return false;
 
+  switch (Kind) {
+  case ALIASING:
+    ASSUMPTION_ALIASING++;
+    break;
+  case INBOUNDS:
+    ASSUMPTION_INBOUNDS++;
+    break;
+  case WRAPPING:
+    ASSUMPTION_WRAPPING++;
+    break;
+  case UNSIGNED:
+    ASSUMPTION_UNSIGNED++;
+    break;
+  case COMPLEXITY:
+    ASSUMPTION_COMPLEXITY++;
+    break;
+  case PROFITABLE:
+    ASSUMPTION_UNPROFITABLE++;
+    break;
+  case ERRORBLOCK:
+    ASSUMPTION_ERRORBLOCK++;
+    break;
+  case INFINITELOOP:
+    ASSUMPTION_INFINITELOOP++;
+    break;
+  case INVARIANTLOAD:
+    ASSUMPTION_INVARIANTLOAD++;
+    break;
+  case DELINEARIZATION:
+    ASSUMPTION_DELINERIZATION++;
+    break;
+  }
+
   auto &F = getFunction();
   auto Suffix = Sign == AS_ASSUMPTION ? " assumption:\t" : " restriction:\t";
   std::string Msg = toString(Kind) + Suffix + stringFromIslObj(Set);




More information about the llvm-commits mailing list