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.