[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [microblaze-uclinux] MicroBlaze fast memcpy / memmove
Hi Jim, Falk,
Jim Law wrote:
Hi all,
I took some suggestions from Goran Bilski and the trials that Falk had
been doing trying to speed up the Ethernet, and built assembler memcpy
and memmove functions that incorporate some loop unrolling, etc. to try
and get uniformly faster moves and copies.
[snip]
Thanks for your work on this. I'm in two minds about which side of the
maintainability vs performance debate should win in this case! The idea
of big chunks of loop unrolled assembler fills me with dread, but it's
hard to say no to performance wins, even if they are modest.
My gut feeling is that the current routines are probably good enough -
they are significantly smarter than a `*dst++=*src++` byte-access
memcpy, which is what motivated me to create them in the first place.
Further, perhaps C language routines these can be tweaked to give the
compiler some clearer hints about how to optimise and unroll them. I
know Michal has done some work cleaning these routines for compiler
warnings in gcc 4.1.1, and there are also some relatively good generic
mempy routines in recent 2.6 kernels. Michal do you have any thoughts
on this?
Cheers,
John
___________________________
microblaze-uclinux mailing list
microblaze-uclinux@xxxxxxxxxxxxxx
Project Home Page : http://www.itee.uq.edu.au/~jwilliams/mblaze-uclinux
Mailing List Archive : http://www.itee.uq.edu.au/~listarch/microblaze-uclinux/