NetBSD-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: memove performance of NetBSD


Thor Lancelot Simon <>:
> On Thu, Jan 28, 2010 at 11:08:16AM +0530, Channa wrote:
>> I verified the current implementation , the copy operation or move
>> operation is done word by word.
>> I have modified the algorithm as below:
>> <1> Align the source if not aligned by copying only few bytes to destination
>> <2> Copy 4 words at a time.
>> I verified the modification with the performance of memmove for
>> aligned and unaligned combination, the performance does not degrade
>> for unaligned access.
> Does the performance actually improve in any case?  If so, does it still
> improve if you remove the hand-unrolling of the loop?
> I'm shocked that the compiler can't unroll the loop by 4 for you.

Yes the performance improves when the memmove is done as below:

memmove(dst, src+1, sizeof(src));
memmove(dst, src+2, sizeof(src));
memmove(dst, src+3, sizeof(src));

If I remove the hand unrolling of the loop (as done in the patch) the
performance does not improve.

I referred the implementation given in the below link:

I am not sure why this behavior.

So wanted to confirm with the mailing list opinion on the same.

Thanks & Regards,

Home | Main Index | Thread Index | Old Index