Commit d7f0e25c by Zdenek Dvorak Committed by Zdenek Dvorak

re PR tree-optimization/23817 (ICE in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:398)

	PR tree-optimize/23817
	* tree-cfg.c (tree_merge_blocks): Preserve loop closed ssa.

From-SVN: r104218
parent 7823229b
2005-09-13 Zdenek Dvorak <dvorakz@suse.cz>
PR tree-optimize/23817
* tree-cfg.c (tree_merge_blocks): Preserve loop closed ssa.
2005-09-13 Alan Modra <amodra@bigpond.net.au> 2005-09-13 Alan Modra <amodra@bigpond.net.au>
PR target/23774 PR target/23774
......
...@@ -1314,8 +1314,17 @@ tree_merge_blocks (basic_block a, basic_block b) ...@@ -1314,8 +1314,17 @@ tree_merge_blocks (basic_block a, basic_block b)
{ {
tree def = PHI_RESULT (phi), use = PHI_ARG_DEF (phi, 0); tree def = PHI_RESULT (phi), use = PHI_ARG_DEF (phi, 0);
tree copy; tree copy;
bool may_replace_uses = may_propagate_copy (def, use);
if (!may_propagate_copy (def, use))
/* In case we have loops to care about, do not propagate arguments of
loop closed ssa phi nodes. */
if (current_loops
&& is_gimple_reg (def)
&& TREE_CODE (use) == SSA_NAME
&& a->loop_father != b->loop_father)
may_replace_uses = false;
if (!may_replace_uses)
{ {
gcc_assert (is_gimple_reg (def)); gcc_assert (is_gimple_reg (def));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment