https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69345
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2016-01-19 Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- Ok, so as expected there are a few missed CSEs because of the wrong-code fix. For examle in UPML.F90 upmlupdatee, upmlupdateh and some more functions and in NFT.F90 for fre1 / fre3 plus in fourier_transf.F90 starting with pre (though that looks like spurious differences). That is after I removed differences stemming from restoring SSA info only after eliminate () (which eventually copies that to the leader). That's not 100% safe I think because of the redundant store removal we perform there which dispatches to SCCVN again. In fact I don't see how we can safely "interleave" those two. Adjusting the points-to/range-info adjusting code to use the "saved" info is a bit ugly :/ But the missed CSEs seem to be the reason for the slowdown as even with the range-info things "fixed" r232401 is 9 seconds slower (330s vs. 321s). Will have to try reducing a testcase and see what can be done here.