http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51275
--- Comment #4 from Michael Matz <matz at gcc dot gnu.org> 2011-11-23 14:12:11 UTC --- Andrew: yes, I considered something similar. To work really well it requires some changes to the conflict generation code, though. Without the clobbers all objects stay live on the exit-block entry and therefore conflict (and hence won't be shared). Conflicts generated only because of the exit block need to be ignored. As Jakub says, the implementation should be improved by walking from the exit block upwards. fab seems like the wrong place to do this. Something like DSE feels more natural perhaps. But it's correct that the removal should happen after inlining but before eh optimizations.