diff options
author | Richard Biener <rguenther@suse.de> | 2015-10-28 10:09:37 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2015-10-28 10:09:37 +0000 |
commit | 056b09955b97083e9dfcd9825160a408433143bf (patch) | |
tree | ba80069b39df85d44caecbb6100e56528305f45d /gcc/tree-ssa-pre.c | |
parent | 6d27d749d70f21c40b58918b9aca2cfbb2f8d5e4 (diff) | |
download | gcc-056b09955b97083e9dfcd9825160a408433143bf.zip gcc-056b09955b97083e9dfcd9825160a408433143bf.tar.gz gcc-056b09955b97083e9dfcd9825160a408433143bf.tar.bz2 |
re PR middle-end/65962 (Missed vectorization of strided stores)
2015-10-28 Richard Biener <rguenther@suse.de>
PR tree-optimization/65962
* tree-ssa-pre.c (eliminate_dom_walker::before_dom_children):
Avoid creating loop carried dependences also for outer loops
of the loop a use to replace is in.
* gcc.dg/vect/vect-62.c: Adjust.
From-SVN: r229481
Diffstat (limited to 'gcc/tree-ssa-pre.c')
-rw-r--r-- | gcc/tree-ssa-pre.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index c5af63d..7deb5a4 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -4082,8 +4082,9 @@ eliminate_dom_walker::before_dom_children (basic_block b) gimple *def_stmt = SSA_NAME_DEF_STMT (sprime); basic_block def_bb = gimple_bb (def_stmt); if (gimple_code (def_stmt) == GIMPLE_PHI - && b->loop_father->header == def_bb) + && def_bb->loop_father->header == def_bb) { + loop_p loop = def_bb->loop_father; ssa_op_iter iter; tree op; bool found = false; @@ -4092,9 +4093,8 @@ eliminate_dom_walker::before_dom_children (basic_block b) affine_iv iv; def_bb = gimple_bb (SSA_NAME_DEF_STMT (op)); if (def_bb - && flow_bb_inside_loop_p (b->loop_father, def_bb) - && simple_iv (b->loop_father, - b->loop_father, op, &iv, true)) + && flow_bb_inside_loop_p (loop, def_bb) + && simple_iv (loop, loop, op, &iv, true)) { found = true; break; @@ -4110,7 +4110,7 @@ eliminate_dom_walker::before_dom_children (basic_block b) print_generic_expr (dump_file, sprime, 0); fprintf (dump_file, " which would add a loop" " carried dependence to loop %d\n", - b->loop_father->num); + loop->num); } /* Don't keep sprime available. */ sprime = NULL_TREE; |