Drop divs before adding array-out-of-bounds assumptions
authorTobias Grosser <tobias@grosser.es>
Fri, 26 Jun 2015 12:09:28 +0000 (12:09 +0000)
committerTobias Grosser <tobias@grosser.es>
Fri, 26 Jun 2015 12:09:28 +0000 (12:09 +0000)
commitf54bb7743a5e0a0242b3d577a997cab4100c5137
tree7f4bd284f9f0e606e18bce6b1c1471e42b6ac504
parenteef7ffe2e964cac8298dc8b3fed813c4f55a2b37
Drop divs before adding array-out-of-bounds assumptions

In case we have modulo operations in the access function (supported since
r240518), the assumptions generated to ensure array accesses remain within
bounds can contain existentially quantified dimensions which results in more
complex and more difficult to handle integer sets. As a result LNT's linpack
benchmark started to fail due to excessive compile time.

We now just drop the existentially quantified dimensions. This should be
generally save, but may result in less precise assumptions which may
consequently make us fall back to the original (unoptimized) code more often. In
practice, these cases probably do not appear to often.

I had difficulties to extract a good test case, but fortunately our LNT bots
cover this one well.

llvm-svn: 240775
polly/lib/Analysis/ScopInfo.cpp