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.

Reply via email to