tree-cfg.c (bsi_replace): Shortcut when replacing the statement with the same one...
authorJan Hubicka <jh@suse.cz>
Thu, 8 Feb 2007 22:04:22 +0000 (23:04 +0100)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 8 Feb 2007 22:04:22 +0000 (22:04 +0000)
* tree-cfg.c (bsi_replace): Shortcut when replacing the statement with
the same one; always update histograms.

From-SVN: r121724

gcc/ChangeLog
gcc/tree-cfg.c

index 0c7db90..3a51bb5 100644 (file)
@@ -1,3 +1,8 @@
+2007-02-08  Jan Hubicka  <jh@suse.cz>
+
+       * tree-cfg.c (bsi_replace): Shortcut when replacing the statement with
+       the same one; always update histograms.
+
 2007-02-08  Diego Novillo  <dnovillo@redhat.com>
 
        * passes.c (init_optimization_passes): Tidy comment.
index d979459..e3e2134 100644 (file)
@@ -2840,6 +2840,8 @@ bsi_replace (const block_stmt_iterator *bsi, tree stmt, bool update_eh_info)
   int eh_region;
   tree orig_stmt = bsi_stmt (*bsi);
 
+  if (stmt == orig_stmt)
+    return;
   SET_EXPR_LOCUS (stmt, EXPR_LOCUS (orig_stmt));
   set_bb_for_stmt (stmt, bsi->bb);
 
@@ -2852,11 +2854,11 @@ bsi_replace (const block_stmt_iterator *bsi, tree stmt, bool update_eh_info)
        {
          remove_stmt_from_eh_region (orig_stmt);
          add_stmt_to_eh_region (stmt, eh_region);
-         gimple_duplicate_stmt_histograms (cfun, stmt, cfun, orig_stmt);
-          gimple_remove_stmt_histograms (cfun, orig_stmt);
        }
     }
 
+  gimple_duplicate_stmt_histograms (cfun, stmt, cfun, orig_stmt);
+  gimple_remove_stmt_histograms (cfun, orig_stmt);
   delink_stmt_imm_use (orig_stmt);
   *bsi_stmt_ptr (*bsi) = stmt;
   mark_stmt_modified (stmt);