tree-into-ssa.c (maybe_register_def): If stmt ends the bb, insert the debug stmt on the single non-EH edge from the stmt.
* tree-into-ssa.c (maybe_register_def): If stmt ends the bb, insert the debug stmt on the single non-EH edge from the stmt. From-SVN: r156177
This commit is contained in:
parent
002cda0a8b
commit
c47987fa5b
|
@ -1,3 +1,8 @@
|
|||
2010-01-22 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
* tree-into-ssa.c (maybe_register_def): If stmt ends the bb,
|
||||
insert the debug stmt on the single non-EH edge from the stmt.
|
||||
|
||||
2010-01-22 Richard Henderson <rth@redhat.com>
|
||||
|
||||
PR tree-opt/42833
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* Rewrite a program in Normal form into SSA.
|
||||
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009
|
||||
Copyright (C) 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Diego Novillo <dnovillo@redhat.com>
|
||||
|
||||
|
@ -1858,7 +1858,27 @@ maybe_register_def (def_operand_p def_p, gimple stmt,
|
|||
if (tracked_var)
|
||||
{
|
||||
gimple note = gimple_build_debug_bind (tracked_var, def, stmt);
|
||||
gsi_insert_after (&gsi, note, GSI_SAME_STMT);
|
||||
/* If stmt ends the bb, insert the debug stmt on the single
|
||||
non-EH edge from the stmt. */
|
||||
if (gsi_one_before_end_p (gsi) && stmt_ends_bb_p (stmt))
|
||||
{
|
||||
basic_block bb = gsi_bb (gsi);
|
||||
edge_iterator ei;
|
||||
edge e, ef = NULL;
|
||||
FOR_EACH_EDGE (e, ei, bb->succs)
|
||||
if (!(e->flags & EDGE_EH))
|
||||
{
|
||||
gcc_assert (!ef);
|
||||
ef = e;
|
||||
}
|
||||
gcc_assert (ef
|
||||
&& single_pred_p (ef->dest)
|
||||
&& !phi_nodes (ef->dest)
|
||||
&& ef->dest != EXIT_BLOCK_PTR);
|
||||
gsi_insert_on_edge_immediate (ef, note);
|
||||
}
|
||||
else
|
||||
gsi_insert_after (&gsi, note, GSI_SAME_STMT);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue