[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