diff options
| author | Tobias Grosser <tobias@grosser.es> | 2015-09-21 16:19:25 +0000 |
|---|---|---|
| committer | Tobias Grosser <tobias@grosser.es> | 2015-09-21 16:19:25 +0000 |
| commit | b1c39429d97ad107b6798e77765543da3258bc06 (patch) | |
| tree | ae2ef1e1c8e491a7f5df1b6906cb45ee4c057ae4 | |
| parent | 55dcd40d3eabe3aebe4eb4cc6625d8dd7be56613 (diff) | |
| download | bcm5719-llvm-b1c39429d97ad107b6798e77765543da3258bc06.tar.gz bcm5719-llvm-b1c39429d97ad107b6798e77765543da3258bc06.zip | |
Do not model delinearized and linearized access relation for a single access
A missing return statement that previously did not have a visibly negative
effect caused after some data-structure changes in r248024 multi-dimensional
accesses to be modeled both multi-dimensional as well as linearized. This
commit adds the missing return to avoid the incorrect double modeling as
well as the compile time increases it caused.
llvm-svn: 248171
| -rw-r--r-- | polly/lib/Analysis/ScopInfo.cpp | 1 | ||||
| -rw-r--r-- | polly/test/DependenceInfo/do_pluto_matmult.ll | 6 | ||||
| -rw-r--r-- | polly/test/ScopInfo/loop_affine_bound_0.ll | 2 |
3 files changed, 6 insertions, 3 deletions
diff --git a/polly/lib/Analysis/ScopInfo.cpp b/polly/lib/Analysis/ScopInfo.cpp index f2382ba1aac..efa42600e7e 100644 --- a/polly/lib/Analysis/ScopInfo.cpp +++ b/polly/lib/Analysis/ScopInfo.cpp @@ -2906,6 +2906,7 @@ void ScopInfo::buildMemoryAccess( addMemoryAccess(Inst->getParent(), Inst, Type, BasePointer->getValue(), AccessFunction, Size, true, Subscripts, SizesSCEV, Val); + return; } } } diff --git a/polly/test/DependenceInfo/do_pluto_matmult.ll b/polly/test/DependenceInfo/do_pluto_matmult.ll index 861e95817cb..2313d1d304d 100644 --- a/polly/test/DependenceInfo/do_pluto_matmult.ll +++ b/polly/test/DependenceInfo/do_pluto_matmult.ll @@ -73,8 +73,8 @@ do.end45: ; preds = %do.cond42 ; MEMORY: RAW dependences: -; MEMORY: { Stmt_do_body2[i0, i1, i2] -> Stmt_do_body2[i0, i1, o2] : i0 <= 35 and i0 >= 0 and i1 <= 35 and i1 >= 0 and i2 >= 0 and o2 >= 1 + i2 and o2 <= 35 } +; MEMORY: { Stmt_do_body2[i0, i1, i2] -> Stmt_do_body2[i0, i1, o2] : i0 <= 35 and i0 >= 0 and i1 <= 35 and i1 >= 0 and i2 >= 0 and o2 >= 1 + i2 and o2 <= 35 and o2 >= 0 } ; MEMORY: WAR dependences: -; MEMORY: { Stmt_do_body2[i0, i1, i2] -> Stmt_do_body2[i0, i1, o2] : i0 <= 35 and i0 >= 0 and i1 <= 35 and i1 >= 0 and i2 >= 0 and o2 >= 1 + i2 and o2 <= 35 } +; MEMORY: { Stmt_do_body2[i0, i1, i2] -> Stmt_do_body2[i0, i1, o2] : i0 <= 35 and i0 >= 0 and i1 <= 35 and i1 >= 0 and i2 >= 0 and o2 >= 1 + i2 and o2 <= 35 and o2 >= 0 } ; MEMORY: WAW dependences: -; MEMORY: { Stmt_do_body2[i0, i1, i2] -> Stmt_do_body2[i0, i1, o2] : i0 <= 35 and i0 >= 0 and i1 <= 35 and i1 >= 0 and i2 >= 0 and o2 >= 1 + i2 and o2 <= 35 } +; MEMORY: { Stmt_do_body2[i0, i1, i2] -> Stmt_do_body2[i0, i1, o2] : i0 <= 35 and i0 >= 0 and i1 <= 35 and i1 >= 0 and i2 >= 0 and o2 >= 1 + i2 and o2 <= 35 and o2 >= 0 } diff --git a/polly/test/ScopInfo/loop_affine_bound_0.ll b/polly/test/ScopInfo/loop_affine_bound_0.ll index 073d226cbd1..d7dbeee5a61 100644 --- a/polly/test/ScopInfo/loop_affine_bound_0.ll +++ b/polly/test/ScopInfo/loop_affine_bound_0.ll @@ -66,6 +66,8 @@ return: ; preds = %bb.nph8, %bb3, %ent ; CHECK: } ; CHECK: Schedule := ; CHECK: [N, M] -> { Stmt_bb1[i0, i1] -> [i0, i1] }; +; CHECK-NOT: 128i1 ; CHECK: MustWriteAccess := [Reduction Type: NONE] ; CHECK: [N, M] -> { Stmt_bb1[i0, i1] -> MemRef_a[i1, i0] }; +; CHECK-NOT: 128i1 ; CHECK: } |

