for gcc/ChangeLog
from 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.
===================================================================
@@ -1428,29 +1428,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
===================================================================
@@ -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);
===================================================================
@@ -897,7 +897,6 @@ extern void df_simple_dataflow (enum df_
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);