On Mon, Aug 27, 2012 at 10:32 PM, Eric Botcazou <ebotca...@adacore.com> wrote: >> This patch fixes the problem by deleting unreachable basic blocks if >> edges were purged during a reload-cse transformation on an insn. I >> didn't add a test case because reliably triggering problems this late >> in the pass pipeline is so hard. > > A pervasive idiom in the RTL land is to call cleanup_cfg (0) in this case (and > Richard recently added the cleanup_cfg (CLEANUP_CFG_CHANGED) variant). Any > reason not to use it? Are you concerned about compilation time here?
No, I just didn't know this :-) The CLEANUP_CFG_CHANGED path looks unnecessary, it looks like this is mostly for repairing loops but I don't see a reason for this in postreload (loops have been freed at that point). I could do cleanup_cfg(0) but there shouldn't be much to clean up other than unreachable blocks. I see delete_unreachable_blocks used a lot too. But I have no strong preference either way. Do you think I should use cleanup_cfg instead? Ciao! Steven