https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83605
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Created attachment 43029 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=43029&action=edit gcc8-pr83605.patch While in theory we could handle this case (CSE of a possibly throwing stmt) by doing maybe_clean_or_replace_eh_stmt and purging dead eh edges and performing cfg cleanup, I'm worried about slsr changing the computations and not actually splitting blocks after any stmt that can throw that it inserts and finding out the right EH edges etc. I think it is far easier to just punt on optimizing stmts that can throw.