[polly] r233507 - Gist-simplify access relations in the context of domain constraints

Tobias Grosser tobias at grosser.es
Sun Mar 29 17:07:50 PDT 2015


Author: grosser
Date: Sun Mar 29 19:07:50 2015
New Revision: 233507

URL: http://llvm.org/viewvc/llvm-project?rev=233507&view=rev
Log:
Gist-simplify access relations in the context of domain constraints

This simplifies already one test case and is needed for upcoming improvements
to our delinearization.

Modified:
    polly/trunk/lib/Analysis/ScopInfo.cpp
    polly/trunk/test/ScopInfo/NonAffine/non_affine_but_sdiv.ll

Modified: polly/trunk/lib/Analysis/ScopInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Analysis/ScopInfo.cpp?rev=233507&r1=233506&r2=233507&view=diff
==============================================================================
--- polly/trunk/lib/Analysis/ScopInfo.cpp (original)
+++ polly/trunk/lib/Analysis/ScopInfo.cpp Sun Mar 29 19:07:50 2015
@@ -622,6 +622,7 @@ MemoryAccess::MemoryAccess(const IRAcces
       isl_map_set_tuple_id(AccessRelation, isl_dim_out, BaseAddrId);
 
   assumeNoOutOfBound(Access);
+  AccessRelation = isl_map_gist_domain(AccessRelation, Statement->getDomain());
   isl_space_free(Space);
 }
 

Modified: polly/trunk/test/ScopInfo/NonAffine/non_affine_but_sdiv.ll
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/test/ScopInfo/NonAffine/non_affine_but_sdiv.ll?rev=233507&r1=233506&r2=233507&view=diff
==============================================================================
--- polly/trunk/test/ScopInfo/NonAffine/non_affine_but_sdiv.ll (original)
+++ polly/trunk/test/ScopInfo/NonAffine/non_affine_but_sdiv.ll Sun Mar 29 19:07:50 2015
@@ -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++)





More information about the llvm-commits mailing list