http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57300
--- Comment #9 from Steven Bosscher <steven at gcc dot gnu.org> --- (In reply to Jakub Jelinek from comment #6) > So supposedly > bool > split_dead_or_set_p (rtx insn, const_rtx x) > { > if (BLOCK_FOR_INSN (insn) == NULL) > return false; /* If cfg is gone, be conservative. */ > if (df_note == NULL) > { > df_note_add_problem (); > df_analyze (); > } > return dead_or_set_p (insn, x); > } > > could work. Steven, comments? I don't think this will work. The fact that df_note != NULL does not mean the notes are up-to-date. It seems to me that after freeing the CFG, no pass should rely on the REG_DEAD and REG_UNUSED notes if Eric's comment in PR57281 is correct: That each pass is responsible for re-computing the notes if it needs them. But I would much rather have the passes at least discard the notes if the pass can't update them. After all, it's not just this dead_or_set_p function that relies on these notes, but also single_set and a bunch of other functions.