[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/