-----Original Message-----
From: paul_kon...@dell.com [mailto:paul_kon...@dell.com] 
Sent: Saturday, December 13, 2014 9:46 PM
To: Ajit Kumar Agarwal
Cc: vmaka...@redhat.com; l...@redhat.com; richard.guent...@gmail.com; 
gcc@gcc.gnu.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 
> <ajit.kumar.agar...@xilinx.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
Ajit

        paul

Reply via email to