This is the mail archive of the
mailing list for the GCC project.
RE: Instruction scheduler with respect to prefetch instructions.
- From: Ajit Kumar Agarwal <ajit dot kumar dot agarwal at xilinx dot com>
- To: "Paul_Koning at Dell dot com" <Paul_Koning at Dell dot com>
- Cc: "vmakarov at redhat dot com" <vmakarov at redhat dot com>, "law at redhat dot com" <law at redhat dot com>, "richard dot guenther at gmail dot com" <richard dot guenther at gmail dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>, Vinod Kathail <vinodk at xilinx dot com>, Shail Aditya Gupta <shailadi at xilinx dot com>, Vidhumouli Hunsigida <vidhum at xilinx dot com>, Nagaraju Mekala <nmekala at xilinx dot com>
- Date: Fri, 19 Dec 2014 19:01:19 +0000
- Subject: RE: Instruction scheduler with respect to prefetch instructions.
- Authentication-results: sourceware.org; auth=none
- Authentication-results: spf=pass (sender IP is 188.8.131.52) smtp dot mailfrom=ajit dot kumar dot agarwal at xilinx dot com;
- References: <2f042c4a5035494baca0725a03c17276 at BN1AFFO11FD035 dot protection dot gbl> <195CA8DD-676F-44C2-B821-9C4149EE01D2 at dell dot com>
From: Paul_Koning@Dell.com [mailto:Paul_Koning@Dell.com]
Sent: Saturday, December 13, 2014 9:46 PM
To: Ajit Kumar Agarwal
Cc: email@example.com; firstname.lastname@example.org; email@example.com; firstname.lastname@example.org; Vinod Kathail; Shail Aditya Gupta; Vidhumouli Hunsigida; Nagaraju Mekala
Subject: Re: Instruction scheduler with respect to prefetch instructions.
> On Dec 13, 2014, at 5:22 AM, Ajit Kumar Agarwal <email@example.com> wrote:
> Hello All:
> Since the prefetch instruction have no direct consumers in the code
> stream, they provide considerable freedom to the Instruction scheduler. They are typically assigned lower priorities than most of the instructions in the code stream.
> This tends to cause all the prefetch instructions to be placed
> together in the final schedule. This causes the performance Degradations by placing them in clumps rather than evenly spreading the prefetch instructions.
> The evenly spreading the prefetch instruction gives better speed up
> ratios as compared to be placing in clumps for dirty Misses.
>>I can believe thatâs true for some processors; is it true for all of them? I have the impression that some MIPS processors donât mind clumped prefetches, >>so long as you donât exceed the limit on total number of concurrently pending memory accesses.
I think it's okay to have clumped prefetches for architectures that are decided based on prefetch distance as long
it doesn't exceed the concurrent pending memory access. The clumped prefetches that are generated by the
scheduler as there are no direct consumers in the code stream sometimes exceed the concurrent pending memory
access if the special mechanism is not done by the scheduler like some information to be passed from the generation
of prefetch algorithm phase to the scheduler.
Due to the freedom provided to instruction scheduler for not having direct consumers in the code stream, clumps
the prefetch instructions at the end of the basic blocks which will invalidates the actual place where the prefetch
instruction is generated based on the prefetch distance.
The prefetch algorithms based on prefetch distance takes care of the cases where the clumped prefetches degraded
the performance due to dirty misses.
My question is there any special way of handling the prefetch instruction with respect to the instruction scheduler to
overcome the above.
Thanks & Regards