From: rguenth Date: Fri, 8 Apr 2011 13:22:32 +0000 (+0000) Subject: 2011-04-08 Richard Guenther X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e1f47fd3a5e0cc2386d383f3a99e726d60f6d893;p=thirdparty%2Fgcc.git 2011-04-08 Richard Guenther * gimple.c (gimple_set_modified): Do not queue calls to MODIFIED_NORETURN_CALLS here ... * tree-ssa-operands.c (update_stmt_operands): ... but here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@172182 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b37d58baecf0..d323a62e80ea 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2011-04-08 Richard Guenther + + * 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 PR lto/48467 diff --git a/gcc/gimple.c b/gcc/gimple.c index 4675d14193e4..3183711b96fc 100644 --- a/gcc/gimple.c +++ b/gcc/gimple.c @@ -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; } diff --git a/gcc/tree-ssa-operands.c b/gcc/tree-ssa-operands.c index 7e2600d6e6d0..57f443fe2bcc 100644 --- a/gcc/tree-ssa-operands.c +++ b/gcc/tree-ssa-operands.c @@ -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);