https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64317
--- Comment #18 from Jeffrey A. Law <law at redhat dot com> --- Sigh... reload_cse_regs doesn't help us because of the CODE_LABEL at the start of block C in the mini-cfg referenced in c#17. In essence it's using the same extended block definition as LRA. postreload-gcse doesn't help us because it computes local properties, but never propagates them through the CFG. So a memory load that occurs in block A and is transparent through B is not seen as available at the end of B. Thus the load is only considered partially redundant at the start of C. SIGH.