[Bug rtl-optimization/78812] [5/6/7 Regression] Wrong code generation due to hoisting memory load across function call

law at redhat dot com gcc-bugzilla@gcc.gnu.org
Wed Dec 21 22:21:00 GMT 2016


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.


More information about the Gcc-bugs mailing list