https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102880
--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> --- Created attachment 51699 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51699&action=edit hack to make forwarders This is an overly simple attempt to make forwarders which works to restore the DCE. Given this it probably makes sense to at least move the early merge_phi pass after CD-DCE. That doesn't help this testcase since regular CFG cleanup performs the merging in our case. It's remove_forwarder_block will perform this. An alternative band-aid would be to resolve the regression by not running CFG cleanup after DSE (we're failing to run it when we empty a BB as well, something we might want to fix instead). Undoing PHI merging might be also a good thing to perform before going out of SSA. And merge_phi itself might do this as a 2nd step.