diff options
-rw-r--r-- | polly/lib/Analysis/ScopInfo.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/polly/lib/Analysis/ScopInfo.cpp b/polly/lib/Analysis/ScopInfo.cpp index 654a95c400d..94e14fd9cdb 100644 --- a/polly/lib/Analysis/ScopInfo.cpp +++ b/polly/lib/Analysis/ScopInfo.cpp @@ -559,6 +559,12 @@ void MemoryAccess::assumeNoOutOfBound(const IRAccess &Access) { Outside = isl_set_apply(Outside, isl_map_reverse(getAccessRelation())); Outside = isl_set_intersect(Outside, Statement->getDomain()); Outside = isl_set_params(Outside); + + // Remove divs to avoid the construction of overly complicated assumptions. + // Doing so increases the set of parameter combinations that are assumed to + // not appear. This is always save, but may make the resulting run-time check + // bail out more often than strictly necessary. + Outside = isl_set_remove_divs(Outside); Outside = isl_set_complement(Outside); Statement->getParent()->addAssumption(Outside); isl_space_free(Space); |