This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc 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]

PATCH: optimize the following memcpy: sysdeps/i386/i686/multiarch/memcpy-ssse3.S


Hello,

I've improved the following implementation of memcpy:
"sysdeps/i386/i686/multiarch/memcpy-ssse3.S".

The patch includes some minor style fixes, but the important part is
just using prefetch loops for the case:

DATA_CACHE_SIZE_HALF <= len <  SHARED_CACHE_SIZE_HALF and
src and dst pointers have unequal 16 byte alignments.

This gives from 6% - 50% performance boost on the atom machine, about
24,73% in geometric mean.
Please, see the attached file for more details. A boost in % is shown there.


ChangeLog:

2012-03-22  Liubov Dmitrieva  <liubov.dmitrieva@gmail.com>

	* sysdeps/i386/i686/multiarch/memcpy-ssse3.S: Update.
	Optimize memcpy with prefetch if
	DATA_CACHE_SIZE_HALF <= len <  SHARED_CACHE_SIZE_HALF and
	src, dst pointers have unequal 16 byte alignments.

--
Liubov Dmitrieva
Software Engineer

Attachment: memcpy_new_patch.txt
Description: Text document

Attachment: memcpy_improved.patch
Description: Binary data


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