gimple.c (gimple_set_modified): Do not queue calls to MODIFIED_NORETURN_CALLS here ...
authorRichard Guenther <rguenther@suse.de>
Fri, 8 Apr 2011 13:22:32 +0000 (13:22 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 8 Apr 2011 13:22:32 +0000 (13:22 +0000)
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

gcc/ChangeLog
gcc/gimple.c
gcc/tree-ssa-operands.c

index b37d58baecf009faaf5d20c804e290713e016ab1..d323a62e80ea2767e81385eac7c22561f19b0f75 100644 (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
index 4675d14193e48f5a1b74cf1664e6b9b8f9be01ab..3183711b96fce3244fff3737a7858a6a0ab69103 100644 (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;
 }
 
 
index 7e2600d6e6d005bc63b0fbd13531cb4d4af0afd5..57f443fe2bccf042462377908a1933e3c9b0ae5e 100644 (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);