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