OSDN Git Service

PR debug/42889
authoraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 13 Nov 2010 18:51:57 +0000 (18:51 +0000)
committeraoliva <aoliva@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 13 Nov 2010 18:51:57 +0000 (18:51 +0000)
* df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
* df-core.c (df_set_bb_dirty_nonrl): Remove.
* df.h (df_set_bb_dirty_nonlr): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166719 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/df-core.c
gcc/df-scan.c
gcc/df.h

index ee27611..d09a985 100644 (file)
@@ -1,3 +1,10 @@
+2010-11-13  Alexandre Oliva  <aoliva@redhat.com>
+
+       PR debug/42889
+       * df-scan.c (df_insn_rescan): Don't mark BBs upon debug insns.
+       * df-core.c (df_set_bb_dirty_nonrl): Remove.
+       * df.h (df_set_bb_dirty_nonlr): Likewise.
+
 2010-11-13  Uros Bizjak  <ubizjak@gmail.com>
 
        * config/mips/mips.md (call_internal): Pass curr_insn to
index 181c1e7..86ed239 100644 (file)
@@ -1427,29 +1427,6 @@ df_set_bb_dirty (basic_block bb)
 }
 
 
-/* Mark BB as needing it's transfer functions as being out of
-   date, except for LR problem.  Used when analyzing DEBUG_INSNs,
-   as LR problem can trigger DCE, and DEBUG_INSNs shouldn't ever
-   shorten or enlarge lifetime of regs.  */
-
-void
-df_set_bb_dirty_nonlr (basic_block bb)
-{
-  if (df)
-    {
-      int p;
-      for (p = 1; p < df->num_problems_defined; p++)
-       {
-         struct dataflow *dflow = df->problems_in_order[p];
-         if (dflow == df_lr)
-           continue;
-         if (dflow->out_of_date_transfer_functions)
-           bitmap_set_bit (dflow->out_of_date_transfer_functions, bb->index);
-         dflow->solutions_dirty = true;
-       }
-    }
-}
-
 /* Grow the bb_info array.  */
 
 void
index b2b88b5..850f067 100644 (file)
@@ -1261,9 +1261,7 @@ df_insn_rescan (rtx insn)
     }
 
   df_refs_add_to_chains (&collection_rec, bb, insn);
-  if (DEBUG_INSN_P (insn))
-    df_set_bb_dirty_nonlr (bb);
-  else
+  if (!DEBUG_INSN_P (insn))
     df_set_bb_dirty (bb);
 
   VEC_free (df_ref, stack, collection_rec.def_vec);
index e52cc0e..f268289 100644 (file)
--- a/gcc/df.h
+++ b/gcc/df.h
@@ -897,7 +897,6 @@ extern void df_simple_dataflow (enum df_flow_dir, df_init_function,
 extern void df_mark_solutions_dirty (void);
 extern bool df_get_bb_dirty (basic_block);
 extern void df_set_bb_dirty (basic_block);
-extern void df_set_bb_dirty_nonlr (basic_block);
 extern void df_compact_blocks (void);
 extern void df_bb_replace (int, basic_block);
 extern void df_bb_delete (int);