diff options
| author | Hongbin Zheng <etherzhhb@gmail.com> | 2017-05-12 02:17:15 +0000 |
|---|---|---|
| committer | Hongbin Zheng <etherzhhb@gmail.com> | 2017-05-12 02:17:15 +0000 |
| commit | 4fe342cb7560993988dd6f978607a2442a905910 (patch) | |
| tree | 8bf533c3b47257ff876e06caa6f0d2469568fef2 /polly/test/Isl/CodeGen/LoopParallelMD | |
| parent | 581072e1a6591d65e55b21d6dce2459a3dffe81a (diff) | |
| download | bcm5719-llvm-4fe342cb7560993988dd6f978607a2442a905910.tar.gz bcm5719-llvm-4fe342cb7560993988dd6f978607a2442a905910.zip | |
[Polly] Generate more 'canonical' induction variable
Today Polly generates induction variable in this way:
polly.indvar = phi 0, polly.indvar.next
...
polly.indvar.next = polly.indvar + stide
polly.loop_cond = predicate polly.indvar, (UB - stride)
Instead of:
polly.indvar = phi 0, polly.indvar.next
...
polly.indvar.next = polly.indvar + stide
polly.loop_cond = predicate polly.indvar.next, UB
The way Polly generate induction variable cause some problem in the indvar simplify pass.
This patch make polly generate the later form, by assuming the induction variable never overflow
Differential Revision: https://reviews.llvm.org/D33089
llvm-svn: 302866
Diffstat (limited to 'polly/test/Isl/CodeGen/LoopParallelMD')
| -rw-r--r-- | polly/test/Isl/CodeGen/LoopParallelMD/loop_nest_param_parallel.ll | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/polly/test/Isl/CodeGen/LoopParallelMD/loop_nest_param_parallel.ll b/polly/test/Isl/CodeGen/LoopParallelMD/loop_nest_param_parallel.ll index b546c09824d..49798ba3a28 100644 --- a/polly/test/Isl/CodeGen/LoopParallelMD/loop_nest_param_parallel.ll +++ b/polly/test/Isl/CodeGen/LoopParallelMD/loop_nest_param_parallel.ll @@ -2,10 +2,10 @@ ; ; Check that we mark multiple parallel loops correctly including the memory instructions. ; -; CHECK-DAG: %polly.loop_cond[[COuter:[0-9]*]] = icmp sle i64 %polly.indvar{{[0-9]*}}, 1022 +; CHECK-DAG: %polly.loop_cond[[COuter:[0-9]*]] = icmp sle i64 %polly.indvar_next{{[0-9]*}}, 1023 ; CHECK-DAG: br i1 %polly.loop_cond[[COuter]], label %polly.loop_header{{[0-9]*}}, label %polly.loop_exit{{[0-9]*}}, !llvm.loop ![[IDOuter:[0-9]*]] ; -; CHECK-DAG: %polly.loop_cond[[CInner:[0-9]*]] = icmp sle i64 %polly.indvar{{[0-9]*}}, 510 +; CHECK-DAG: %polly.loop_cond[[CInner:[0-9]*]] = icmp sle i64 %polly.indvar_next{{[0-9]*}}, 511 ; CHECK-DAG: br i1 %polly.loop_cond[[CInner]], label %polly.loop_header{{[0-9]*}}, label %polly.loop_exit{{[0-9]*}}, !llvm.loop ![[IDInner:[0-9]*]] ; ; CHECK-DAG: store i32 %{{[a-z_0-9]*}}, i32* %{{[a-z_0-9]*}}, {{[ ._!,a-zA-Z0-9]*}}, !llvm.mem.parallel_loop_access !4 |

