From 0f8c63cc10c27905f6d6fa553d3be08a416b2e1f Mon Sep 17 00:00:00 2001 From: Richard Guenther Date: Fri, 8 Apr 2011 13:22:32 +0000 Subject: [PATCH] gimple.c (gimple_set_modified): Do not queue calls to MODIFIED_NORETURN_CALLS here ... 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. From-SVN: r172182 --- gcc/ChangeLog | 6 ++++++ gcc/gimple.c | 10 +--------- gcc/tree-ssa-operands.c | 6 ++++++ 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b37d58baecf..d323a62e80e 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 4675d14193e..3183711b96f 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 7e2600d6e6d..57f443fe2bc 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); -- 2.30.2