This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH][haifa-sched] model load/store multiples properly in autoprefetcher scheduling



On 16/10/15 04:55, Vladimir Makarov wrote:
On 10/15/2015 11:27 AM, Kyrill Tkachov wrote:

On 15/10/15 11:16, Bernd Schmidt wrote:
On 10/15/2015 11:40 AM, Kyrill Tkachov wrote:
The code that analyzes the offsets of the loads/stores doesn't try to
handle load/store-multiple insns.
These appear rather frequently in memory streaming workloads on aarch64
in the form of load-pair/store-pair instructions
i.e. ldp/stp.  In RTL, they are created by the sched_fusion pass + a
subsequent peephole and during sched2 they appear
as PARALLEL rtxes of multiple SETs to/from memory.


     * sched-int.h (struct autopref_multipass_data_): Remove offset
     field.  Add min_offset, max_offset, multi_mem_insn_p fields.
     * haifa-sched.c (analyze_set_insn_for_autopref): New function.
     (autopref_multipass_init): Use it.  Handle PARALLEL sets.
     (autopref_rank_data): New function.
     (autopref_rank_for_schedule): Use it.
     (autopref_multipass_dfa_lookahead_guard_1): Likewise.

Looks pretty reasonable to me. Ok to commit with a few changes next Wednesday unless you hear from Vlad in the meantime (I just want to give him time to look at it).

Thanks, I'll wait as you suggested (and cc'ing Vlad).
In the meantime, here's the updated patch with the suggested changes for the record.
Ok for me.


Thanks, I'll commit it on Monday then.
Cheers,
Kyrill


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]