[llvm-commits] [patch] call libc memcpy/memset for big arrays
Rafael Espindola
espindola at google.com
Fri Aug 24 04:44:24 PDT 2007
Currently we expand a memcpy/memset node to a call to the libc implementation if
if ((Align & 3) != 0 ||
(I && I->getValue() < Subtarget->getMinRepStrSizeThreshold())) {
Shouldn't this be a ">". The libc memcpy/memset are very fast for big arrays.
If I compile
---------------------------------------
#include <string.h>
void f1(long *a, long *b) {
memcpy(a, b, 8 * 16);
}
void f2(long *a, long *b) {
memcpy(a, b, 8 * 32);
}
---------------------------------------
with gcc 4.2 (-O2), it will call memcpy for f2 and not for f1.
Cheers,
--
Rafael Avila de Espindola
Google Ireland Ltd.
Gordon House
Barrow Street
Dublin 4
Ireland
Registered in Dublin, Ireland
Registration Number: 368047
-------------- next part --------------
A non-text attachment was scrubbed...
Name: memcpy.patch
Type: text/x-patch
Size: 1494 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20070824/da7d9d51/attachment.bin>
More information about the llvm-commits
mailing list