[ScopInfo] Fix domains after loops.
authorMichael Kruse <llvm@meinersbur.de>
Tue, 22 Mar 2016 23:27:42 +0000 (23:27 +0000)
committerMichael Kruse <llvm@meinersbur.de>
Tue, 22 Mar 2016 23:27:42 +0000 (23:27 +0000)
commit49a59ca0930f3038e5bfc8cea66f06be957ecf92
tree06d7506f07f954ad580f37a12a760f7f281a38f5
parent009ea26358bc2a833a518afed4a9625e6aad8025
[ScopInfo] Fix domains after loops.

ISL can conclude additional conditions on parameters from restrictions
on loop variables. Such conditions persist when leaving the loop and the
loop variable is projected out. This results in a narrower domain for
exiting the loop than entering it and is logically impossible for
non-infinite loops.

We fix this by not adding a lower bound i>=0 when constructing BB
domains, but defer it to when also the upper bound it computed, which
was done redundantly even before this patch.

This reduces the number of LNT fails with -polly-process-unprofitable
-polly-position=before-vectorizer from 8 to 6.

llvm-svn: 264118
polly/lib/Analysis/ScopInfo.cpp
polly/test/Isl/CodeGen/phi_scalar_simple_1.ll
polly/test/ScopInfo/intra_and_inter_bb_scalar_dep.ll
polly/test/ScopInfo/isl_trip_count_03.ll
polly/test/ScopInfo/loop-succ-cond.ll [new file with mode: 0644]
polly/test/ScopInfo/phi_scalar_simple_1.ll
polly/test/ScopInfo/remarks.ll
polly/test/ScopInfo/switch-1.ll
polly/test/ScopInfo/switch-2.ll
polly/test/ScopInfo/switch-3.ll
polly/test/ScopInfo/switch-4.ll