diff options
| -rw-r--r-- | polly/lib/Analysis/ScopInfo.cpp | 1 | ||||
| -rw-r--r-- | polly/test/ScopInfo/NonAffine/non_affine_but_sdiv.ll | 4 |
2 files changed, 3 insertions, 2 deletions
diff --git a/polly/lib/Analysis/ScopInfo.cpp b/polly/lib/Analysis/ScopInfo.cpp index 3e19a33c4a4..4224b8aabe5 100644 --- a/polly/lib/Analysis/ScopInfo.cpp +++ b/polly/lib/Analysis/ScopInfo.cpp @@ -622,6 +622,7 @@ MemoryAccess::MemoryAccess(const IRAccess &Access, Instruction *AccInst, isl_map_set_tuple_id(AccessRelation, isl_dim_out, BaseAddrId); assumeNoOutOfBound(Access); + AccessRelation = isl_map_gist_domain(AccessRelation, Statement->getDomain()); isl_space_free(Space); } diff --git a/polly/test/ScopInfo/NonAffine/non_affine_but_sdiv.ll b/polly/test/ScopInfo/NonAffine/non_affine_but_sdiv.ll index 9a02041bd52..81c33e6d4c3 100644 --- a/polly/test/ScopInfo/NonAffine/non_affine_but_sdiv.ll +++ b/polly/test/ScopInfo/NonAffine/non_affine_but_sdiv.ll @@ -1,9 +1,9 @@ ; RUN: opt %loadPolly -polly-detect-unprofitable -polly-scops -analyze < %s | FileCheck %s ; ; CHECK: ReadAccess := [Reduction Type: NONE] [Scalar: 0] -; CHECK: [N] -> { Stmt_for_body[i0] -> MemRef_A[o0] : (N >= 0 and 5o0 >= -4 + N + 5i0 and 5o0 <= N + 5i0) or (N <= -1 and 5o0 >= N + 5i0 and 5o0 <= 4 + N + 5i0) }; +; CHECK: [N] -> { Stmt_for_body[i0] -> MemRef_A[o0] : 5o0 >= -4 + N + 5i0 and 5o0 <= N + 5i0 }; ; CHECK: ReadAccess := [Reduction Type: NONE] [Scalar: 0] -; CHECK: [N] -> { Stmt_for_body[i0] -> MemRef_A[o0] : (N <= 0 and 5o0 <= -N + 5i0 and 5o0 >= -4 - N + 5i0) or (N >= 1 and 5o0 <= 4 - N + 5i0 and 5o0 >= -N + 5i0) }; +; CHECK: [N] -> { Stmt_for_body[i0] -> MemRef_A[o0] : 5o0 <= 4 - N + 5i0 and 5o0 >= -N + 5i0 }; ; ; void f(int *A, int N) { ; for (int i = 0; i < N; i++) |

