llvm-project/polly/test
Sebastian Pop 422e33f363 record delinearization result and reuse it in polyhedral translation
Without this patch, the testcase would fail on the delinearization of the second
array:

; void foo(long n, long m, long o, double A[n][m][o]) {
;   for (long i = 0; i < n; i++)
;     for (long j = 0; j < m; j++)
;       for (long k = 0; k < o; k++) {
;         A[i+3][j-4][k+7] = 1.0;
;         A[i][0][k] = 2.0;
;       }
; }

; CHECK: [n, m, o] -> { Stmt_for_body6[i0, i1, i2] -> MemRef_A[3 + i0, -4 + i1, 7 + i2] };
; CHECK: [n, m, o] -> { Stmt_for_body6[i0, i1, i2] -> MemRef_A[i0, 0, i2] };

Here is the output of FileCheck on the testcase without this patch:

; CHECK: [n, m, o] -> { Stmt_for_body6[i0, i1, i2] -> MemRef_A[i0, 0, i2] };
         ^
<stdin>:26:2: note: possible intended match here
 [n, m, o] -> { Stmt_for_body6[i0, i1, i2] -> MemRef_A[o0] };
 ^

It is possible to find a good delinearization for A[i][0][k] only in the context
of the delinearization of both array accesses.

There are two ways to delinearize together all array subscripts touching the
same base address: either duplicate the code from scop detection to first gather
all array references and then run the delinearization; or as implemented in this
patch, use the same delinearization info that we computed during scop detection.

llvm-svn: 210117
2014-06-03 18:16:31 +00:00
..
Cloog Do not run GPGPU test cases without nvptx target 2014-05-14 14:18:14 +00:00
CodePreparation Delete trivial PHI nodes (aka stack slot sharing) 2014-04-01 16:01:33 +00:00
DeadCodeElimination Dead code elimination: Schedule another approximative step before actual DCE 2014-02-24 08:52:20 +00:00
Dependences delinearize memory access functions 2014-04-08 21:20:44 +00:00
IndependentBlocks IndependentBlocks: Do not assert for PHI nodes outside of scops 2014-01-29 23:08:10 +00:00
Isl only delinearize when the access function is not affine 2014-04-10 16:08:11 +00:00
ScheduleOptimizer Added option for n-dimensional rectangular tiling 2014-05-28 17:21:02 +00:00
ScopDetect correct the delinearization failing case 2014-05-12 19:02:02 +00:00
ScopInfo record delinearization result and reuse it in polyhedral translation 2014-06-03 18:16:31 +00:00
TempScop TempScop: Actually load Polly in this test case 2013-07-29 05:18:09 +00:00
CMakeLists.txt Do not run GPGPU test cases without nvptx target 2014-05-14 14:18:14 +00:00
Makefile Fixed missing cloog test with automake/configure build setup 2014-04-22 15:30:43 +00:00
README
create_ll.sh Updated test/create_ll.sh to work with old & new clang versions. 2014-03-25 15:50:44 +00:00
lit.cfg Do not run GPGPU test cases without nvptx target 2014-05-14 14:18:14 +00:00
lit.site.cfg.in autoconf: Fix module loading in tests 2014-03-14 13:27:26 +00:00
polly.ll

README

place tests here