http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58387
--- Comment #20 from Jeffrey A. Law <law at redhat dot com> --- I think an option to eliminate the path entire like the first iteration of the change did could be easily added later. In fact it would be fairly easy to add. Basically we'd arrange to mark the isolated path with a flag on the block. We then have a pass which looks for those flags and eliminates the edge upon which those blocks are control dependent. That's really it. That'll eliminate the condition and expose the path as unreachable. Are we leaving most of the benefit on the table without that option, maybe, maybe not. I was pleasantly surprised to see that just the isolation aspect of this work does simplify things enough to allow the main path to optimize better.