This is the mail archive of the libc-ports@sources.redhat.com mailing list for the libc-ports 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] Optimize MIPS memcpy


On 16/10/2012, at 10:36 AM, Steve Ellcey wrote:

> On Mon, 2012-10-15 at 13:50 -0700, Andrew Pinski wrote:
> 
> Building you could use __OCTEON__ but that does not change the fact
> you could build glibc for the standard mips32/mips64 and then not get
> a working glibc if it defaults to 32bytes prefetch.
> 
> So are you saying that we shouldn't use the 'prepare to store' prefetch
> in the glibc memcpy then?  We could use one of the other prefetches
> without having to worry about bad code on machines with different size
> prefetches, but it would not be as fast as using 'prepare to store'.
> 
>> Also it would be nice to use ifunc's like they are used on x86_64 (and
>> I think PPC also) so we can compile one generic version of glibc and
>> get the optimized version of memcpy.  Though ifunc's have their own
>> issue as they don't currently work on MIPS (they cause internal linker
>> errors).
> 
> I'll have to look at that, I am not familiar with the ifunc's except in
> very general terms.

I suggest you move support for prepare-to-store prefetches into TODO category blocked on working IFUNC support for MIPS.  Without IFUNCs and having all the different-sized cache lines on MIPS you can't make prepare-to-store work reliably.

Once IFUNC support for MIPS is there, we can revisit using prepare-to-store prefetches.

--
Maxim Kuvyrkov
CodeSourcery / Mentor Graphics


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