https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83913

--- Comment #2 from Alexander Monakov <amonakov at gcc dot gnu.org> ---
Thanks. While I could not find why we blow up with Haswell tuning but not say
Sandybridge, the main problem is that with all those -fno-... flags we have a
few insns of the form rK = rN where rN is loop-invariant and rK is unused, so
the insns are movable anywhere, including across the loop backedge (since
pipelining is enabled). We try to fill schedule holes (caused by long-latency
integer division insns) by repeatedly pipelining them. Eventually sched_times
cut off should prevent that, but it doesn't grow as intended because
bookkeeping copies get sched_times 0, and expr merging takes the minimum of two
sched_times.

Reply via email to