https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64317
--- Comment #22 from Jeffrey A. Law <law at redhat dot com> --- Yes, absolutely, we have to compensate for the case where B clobbers something useful, undoing transformations, etc. It may not be reasonably feasible within the current structure of LRA. I'm getting pretty close on getting postreload-gcse.c to handle this. Most of the complexity has been in untangling the bits from gcse.c that I want to re-use. There's obviously cleanup still to do and some instrumentation/analysis of the generated code on a wider codebase, but it looks promising.