[PATCH] D41694: [Polly][ScopInfo] Remove RunTimeChecksMaxAccessDisjuncts bail-out condition.

Michael Kruse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jan 3 02:43:21 PST 2018

Meinersbur created this revision.
Meinersbur added reviewers: grosser, jdoerfert.
Meinersbur added a project: Polly.
Herald added a reviewer: bollu.

The condition was introduced in r267142 to mitigate a long compile-time case. In r306087, a max-computation limit was introduced that should handle the same case while leaving the max disjuncts heuristic it should have replaced intact.

Today, the max disjuncts bail-out causes problems in that it prematurely stops SCoPs from being detected, e.g. in SPEC's lbm. This would hit less like if `isl_set_coalesce` would be called after `isl_set_remove_divs` (which makes more basic_set likely to be coalescable) instead of before.

This patch removes max disjuncts bail-out as having been superseded by the max-computations limit.

  rPLO Polly



Index: lib/Analysis/ScopInfo.cpp
--- lib/Analysis/ScopInfo.cpp
+++ lib/Analysis/ScopInfo.cpp
@@ -174,12 +174,6 @@
     cl::desc("Do not emit remarks about assumptions that are known"),
     cl::Hidden, cl::ZeroOrMore, cl::init(false), cl::cat(PollyCategory));
-static cl::opt<int> RunTimeChecksMaxAccessDisjuncts(
-    "polly-rtc-max-array-disjuncts",
-    cl::desc("The maximal number of disjunts allowed in memory accesses to "
-             "to build RTCs."),
-    cl::Hidden, cl::ZeroOrMore, cl::init(8), cl::cat(PollyCategory));
 static cl::opt<unsigned> RunTimeChecksMaxParameters(
     cl::desc("The maximal number of parameters allowed in RTCs."), cl::Hidden,
@@ -2370,9 +2364,6 @@
       return isl::stat::error;
-  if (isl_set_n_basic_set(Set.get()) > RunTimeChecksMaxAccessDisjuncts)
-    return isl::stat::error;
   MinPMA = Set.lexmin_pw_multi_aff();
   MaxPMA = Set.lexmax_pw_multi_aff();

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D41694.128502.patch
Type: text/x-patch
Size: 1019 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20180103/a06486d7/attachment.bin>

More information about the llvm-commits mailing list