aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-pre.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2015-10-28 10:09:37 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2015-10-28 10:09:37 +0000
commit056b09955b97083e9dfcd9825160a408433143bf (patch)
treeba80069b39df85d44caecbb6100e56528305f45d /gcc/tree-ssa-pre.c
parent6d27d749d70f21c40b58918b9aca2cfbb2f8d5e4 (diff)
downloadgcc-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.c10
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;