On 3 February 2017 at 14:58, Maxim Kuvyrkov <maxim.kuvyr...@linaro.org> wrote:
>> On Jan 30, 2017, at 5:50 PM, Maxim Kuvyrkov <maxim.kuvyr...@linaro.org> 
>> wrote:
>>
>>> On Jan 30, 2017, at 3:23 PM, Kyrill Tkachov <kyrylo.tkac...@foss.arm.com> 
>>> wrote:
>>>
>>> Hi Maxim,
>>>
>>> On 30/01/17 12:06, Maxim Kuvyrkov wrote:
>>>> This patch enables prefetching at -O3 for aarch64 cores that set 
>>>> "simultaneous prefetches" parameter above 0.  There are currently no such 
>>>> settings, so this patch doesn't change default code generation.
>>>>
>>>> I'm now working on improvements to -fprefetch-loop-arrays pass to make it 
>>>> suitable for -O2. I'll post this work in the next month.
>>>>
>>>> Bootstrapped and regtested on x86_64-linux-gnu and aarch64-linux-gnu.
>>>>
>>>
>>> Are you aiming to get this in for GCC 8?
>>> I have one small comment on this patch:
>>>
>>> +  /* Enable sw prefetching at -O3 for CPUS that have prefetch, and we
>>> +     have deemed it beneficial (signified by setting
>>> +     prefetch.num_slots to 1 or more).  */
>>> +  if (flag_prefetch_loop_arrays < 0
>>> +      && HAVE_prefetch
>>>
>>> HAVE_prefetch will always be true on aarch64.
>>> I imagine midend code that had logic like this would need this check, but 
>>> aarch64-specific code shouldn't need it.
>>
>> Agree, I'll remove HAVE_prefetch.
>>
>> This pattern was copied from other backends, and HAVE_prefetch is most 
>> likely a historical artifact.
>
> Andrew raised a good point in the review of his patch that it is a bad idea 
> to use one of prefetching parameters (simultaneous_prefetches) as indicator 
> for whether to enable prefetching pass by default.  Indeed there are cases 
> when we want to set simultaneous_prefetch according to HW documentation (or 
> experimental results), but not enable prefetching pass by default.
>
> This update to the patch addresses it.  The patch adds a new explicit field 
> to prefetch tuning structure "default_opt_level" that sets optimization level 
> from which prefetching should be enabled by default.  The current value is to 
> enable prefetching at -O3; additionally, this parameter will come handy for 
> enabling prefetching at -O2 [when it is ready].
>
> --
> Maxim Kuvyrkov
> www.linaro.org
>
>

AArch64 maintainers, ping?  Here is a rebased patch against current
trunk.  OK to commit, assuming bootstrap and reg-test passes?

-- 
Maxim Kuvyrkov
www.linaro.org

Attachment: 0004-Enable-fprefetch-loop-arrays-at-O3-for-cores-that-be.patch
Description: Binary data

Reply via email to