The original note for implementing this (which I wrote) indicated that this should only be done for very small memory blocks, probably < 8 bytes, but certainly less than 64. I don't know what the magic number is where there's a tradeoff and its probably different for different targets, but certainly megabytes is WAAAY to big :)
Reid. On Sun, 2006-03-26 at 13:19 -0600, Nate Begeman wrote: > > Changes in directory llvm/lib/Target/X86: > > README.txt updated: 1.73 -> 1.74 > --- > Log message: > > Readme note > > > --- > Diffs of the changes: (+7 -0) > > README.txt | 7 +++++++ > 1 files changed, 7 insertions(+) > > > Index: llvm/lib/Target/X86/README.txt > diff -u llvm/lib/Target/X86/README.txt:1.73 > llvm/lib/Target/X86/README.txt:1.74 > --- llvm/lib/Target/X86/README.txt:1.73 Fri Mar 24 01:12:19 2006 > +++ llvm/lib/Target/X86/README.txt Sun Mar 26 13:19:27 2006 > @@ -542,6 +542,13 @@ > > > //===---------------------------------------------------------------------===// > > +We are currently lowering large (1MB+) memmove/memcpy to rep/stosl and > rep/movsl > +We should leave these as libcalls for everything over a much lower threshold, > +since libc is hand tuned for medium and large mem ops (avoiding RFO for large > +stores, TLB preheating, etc) > + > +//===---------------------------------------------------------------------===// > + > Lower memcpy / memset to a series of SSE 128 bit move instructions when it's > feasible. > > > > > _______________________________________________ > llvm-commits mailing list > llvm-commits@cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
signature.asc
Description: This is a digitally signed message part
_______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits