gimple.c (gimple_set_modified): Do not queue calls to MODIFIED_NORETURN_CALLS here ...

2011-04-08  Richard Guenther  <rguenther@suse.de>

	* gimple.c (gimple_set_modified): Do not queue calls to
	MODIFIED_NORETURN_CALLS here ...
	* tree-ssa-operands.c (update_stmt_operands): ... but here.

From-SVN: r172182
This commit is contained in:
Richard Guenther 2011-04-08 13:22:32 +00:00 committed by Richard Biener
parent 5e5a425e73
commit 0f8c63cc10
3 changed files with 13 additions and 9 deletions

View File

@ -1,3 +1,9 @@
2011-04-08 Richard Guenther <rguenther@suse.de>
* gimple.c (gimple_set_modified): Do not queue calls to
MODIFIED_NORETURN_CALLS here ...
* tree-ssa-operands.c (update_stmt_operands): ... but here.
2011-04-08 Richard Guenther <rguenther@suse.de>
PR lto/48467

View File

@ -2254,15 +2254,7 @@ void
gimple_set_modified (gimple s, bool modifiedp)
{
if (gimple_has_ops (s))
{
s->gsbase.modified = (unsigned) modifiedp;
if (modifiedp
&& cfun->gimple_df
&& is_gimple_call (s)
&& gimple_call_noreturn_p (s))
VEC_safe_push (gimple, gc, MODIFIED_NORETURN_CALLS (cfun), s);
}
s->gsbase.modified = (unsigned) modifiedp;
}

View File

@ -1134,6 +1134,12 @@ update_stmt_operands (gimple stmt)
timevar_push (TV_TREE_OPS);
/* If the stmt is a noreturn call queue it to be processed by
split_bbs_on_noreturn_calls during cfg cleanup. */
if (is_gimple_call (stmt)
&& gimple_call_noreturn_p (stmt))
VEC_safe_push (gimple, gc, MODIFIED_NORETURN_CALLS (cfun), stmt);
gcc_assert (gimple_modified_p (stmt));
build_ssa_operands (stmt);
gimple_set_modified (stmt, false);