https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104459

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
On the other side, df-scan.cc does in 3 other spots:
  /* By adding the ref directly, df_insn_rescan my not find any
     differences even though the block will have changed.  So we need
     to mark the block dirty ourselves.  */
  if (!DEBUG_INSN_P (DF_REF_INSN (ref)))
    df_set_bb_dirty (bb);
and
  /* The block must be marked as dirty now, rather than later as in
     df_insn_rescan and df_notes_rescan because it may not be there at
     rescanning time and the mark would blow up.
     DEBUG_INSNs do not make a block's data flow solution dirty (at
     worst the LUIDs are no longer contiguous).  */
  if (bb != NULL && NONDEBUG_INSN_P (insn))
    df_set_bb_dirty (bb);
and
  if (!DEBUG_INSN_P (insn))
    df_set_bb_dirty (bb);
so I wonder if another fix wouldn't be just not call df_set_bb_dirty on
DEBUG_INSN_P in df_insn_change_bb.  But what do I know about df :(.

Reply via email to