https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78812
--- Comment #9 from Jeffrey A. Law <law at redhat dot com> --- So it's been a long time... And IIRC, rth was the one that fixed this wart in gcse. A BB that ends with a call that can throw or any other abnormal edge is supposed to suppress hoisting for precisely the reasons outlined in this BZ. Essentially we need to insert on the edge, but we can't (easily) do that for the EH/abnormal edge and we can't safely insert before the call. Theother possibility was that we kill the expressions in the EH landing pads. I thought we looked at that as well.