aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-propagate.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2016-08-16 11:22:47 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2016-08-16 11:22:47 +0000
commitf4eec0a3e34cd709476b5062e44ef0075c75f426 (patch)
treeb0fc0fa96f99c94f842f790b5049f90e7d5fec39 /gcc/tree-ssa-propagate.c
parent8f21990a676b65040761886e54fc9d5149ec014c (diff)
downloadgcc-f4eec0a3e34cd709476b5062e44ef0075c75f426.zip
gcc-f4eec0a3e34cd709476b5062e44ef0075c75f426.tar.gz
gcc-f4eec0a3e34cd709476b5062e44ef0075c75f426.tar.bz2
re PR tree-optimization/76783 (wrong code with conditional vector assignment @ -Og)
2016-08-16 Richard Biener <rguenther@suse.de> PR tree-optimization/76783 * tree-ssa-propagate.c (ssa_prop_init): Use RPO order. Clear BB visited flags at start. * gcc.dg/pr76783.c: New testcase. * gcc.dg/tree-ssa/pr69270-2.c: Adjust. From-SVN: r239496
Diffstat (limited to 'gcc/tree-ssa-propagate.c')
-rw-r--r--gcc/tree-ssa-propagate.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/tree-ssa-propagate.c b/gcc/tree-ssa-propagate.c
index 6cbcd44..c8cf078 100644
--- a/gcc/tree-ssa-propagate.c
+++ b/gcc/tree-ssa-propagate.c
@@ -422,8 +422,8 @@ ssa_prop_init (void)
/* Worklist of basic-blocks. */
bb_to_cfg_order = XNEWVEC (int, last_basic_block_for_fn (cfun) + 1);
cfg_order_to_bb = XNEWVEC (int, n_basic_blocks_for_fn (cfun));
- int n = pre_and_rev_post_order_compute_fn (cfun, cfg_order_to_bb,
- NULL, false);
+ int n = pre_and_rev_post_order_compute_fn (cfun, NULL,
+ cfg_order_to_bb, false);
for (int i = 0; i < n; ++i)
bb_to_cfg_order[cfg_order_to_bb[i]] = i;
cfg_blocks = BITMAP_ALLOC (NULL);
@@ -453,7 +453,7 @@ ssa_prop_init (void)
gimple_set_uid (stmt, inc_gimple_stmt_max_uid (cfun));
}
- gcc_assert (! (bb->flags & BB_VISITED));
+ bb->flags &= ~BB_VISITED;
FOR_EACH_EDGE (e, ei, bb->succs)
e->flags &= ~EDGE_EXECUTABLE;
}