> This patch allows targets to keep the CFG around until after final, by > skipping pass_free_cfg and CFG-destructive passes like dbr_schedule, > and by making insn splitting before 'final' use split_all_insns > instead of split_all_insns_noflow if pass_free_cfg was skipped.
Well, you currently can't skip dbr_schedule if you have delay slots, c6x set aside, so I'm not sure whether we want to start another transition before even knowing if we can reasonably complete it. > For the moment, only ix86 uses the CFG-aware version of the hook, but > there are a handful of targets that can be converted to do this also > (ia64, bfin, c6x, sparc, probably others). Not SPARC for sure. > I hope that maintainers will over time change their machine reorgs to > maintain the CFG, so that passes like pass_dwarf2_frame can use the > CFG instead of creating "a facsimile of one on the fly" (see > dwarf2cfi.c). I think that an incremental step would be to allow the machine reorg pass to use the CFG, even if it doesn't maintain it. For the rest I'm not sure, as long as we have the dbr_schedule blocker. -- Eric Botcazou