> That could be done, yes. Cleaning up the REG_EQ* notes requires > liveness at the insn level, so it'd require a bigger re-organization > of the code. Perhaps adding a new pass (conditional on DF_EQ_NOTES) > over all insn in df_lr_finalize, tracking liveness and calling > df_remove_dead_eq_notes on each insn. > > But most passes that use the REG_EQ* notes don't set the DF_EQ_NOTES flag.
Right. After the DF merge, the de-facto consensus was that individual passes were still responsible for cleaning up the REG_EQ* notes when they change the code, whereas the REG_DEAD/REG_UNUSED notes are entirely handled by DF. As such, the bug here is in the unroller, not in the webizer. So I think that we should try to fix the unroller first. If that's not really doable, then a fallback could be to shield the passes using DF_EQ_NOTES from dangling REG_EQ* notes by means of DF. But using df_note_add_problem for this task seems to be a little far-fetched. > Perhaps df_note_add_problem should imply setting DF_EQ_NOTES? Do you mean the opposite, i.e setting DF_EQ_NOTES should imply adding DF_NOTE? -- Eric Botcazou