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

Kyrill Tkachov kyrylo.tkachov@arm.com
Fri Oct 16 13:08:00 GMT 2015


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



More information about the Gcc-patches mailing list