http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51117
--- Comment #7 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-12-09 16:09:48 UTC --- Created attachment 26034 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26034 gcc47-pr51117-sink.patch So far untested attempt to sink clobbers if a BB with all EH pred edges and a single EH succ edge, ending with internal throwing RESX contains other than that just CLOBBER stmts (and optionally debug stmts). Such BBs force us to immediately rethrow with no actual code in between, when the clobber stmts are sunk into the successor, we can actually ehcleanup those. Had to tweak a little bit the conflict detection in the expander for that though, without that it would think the vars still conflict on the incoming edge (even when no actual insns that might touch memory appear before the clobber).