tree-ssa-dom.c (dom_opt_finalize_block): Do not call thread_across_edge for any abnormal edges.

* tree-ssa-dom.c (dom_opt_finalize_block): Do not call
	thread_across_edge for any abnormal edges.

	* gcc.c-torture/compile/20050510-1.c: New test.

From-SVN: r99536
This commit is contained in:
Jeff Law 2005-05-10 13:19:30 -06:00
parent 0cb757cc06
commit 5fefbc7977
4 changed files with 21 additions and 12 deletions

View File

@ -1,3 +1,8 @@
2005-05-10 Jeff Law <law@redhat.com>
* tree-ssa-dom.c (dom_opt_finalize_block): Do not call
thread_across_edge for any abnormal edges.
2005-05-10 Richard Henderson <rth@redhat.com>
* config/ia64/ia64.c (ia64_expand_atomic_op): New.

View File

@ -1,3 +1,7 @@
2005-05-10 Diego Novillo <dnovillo@redhat.com>
* gcc.c-torture/compile/20050510-1.c: New test.
2005-05-10 Mark Mitchell <mark@codesourcery.com>
* gcc.dg/arm-vfp1.c: Remove test for fnegs.

View File

@ -0,0 +1,12 @@
void bar (int k)
{
void *label = (k) ? &&x : &&y;
if (k)
goto *label;
x:
if (k)
dont_remove ();
y:
return;
}

View File

@ -985,18 +985,6 @@ dom_opt_finalize_block (struct dom_walk_data *walk_data, basic_block bb)
{
thread_across_edge (walk_data, single_succ_edge (bb));
}
else if ((last = last_stmt (bb))
&& TREE_CODE (last) == GOTO_EXPR
&& TREE_CODE (TREE_OPERAND (last, 0)) == SSA_NAME)
{
edge_iterator ei;
edge e;
FOR_EACH_EDGE (e, ei, bb->succs)
{
thread_across_edge (walk_data, e);
}
}
else if ((last = last_stmt (bb))
&& TREE_CODE (last) == COND_EXPR
&& (COMPARISON_CLASS_P (COND_EXPR_COND (last))