summaryrefslogtreecommitdiffstats
path: root/clang/test/Analysis/malloc-three-arg.c
diff options
context:
space:
mode:
authorHans Wennborg <hans@hanshq.net>2014-03-26 16:30:54 +0000
committerHans Wennborg <hans@hanshq.net>2014-03-26 16:30:54 +0000
commitd683a22dd21424416cb261c2de22520c84977c0f (patch)
tree19baee28d83ab5c20416fb89af25b0041e3dd208 /clang/test/Analysis/malloc-three-arg.c
parenta6c8b5121231aee00e229b4247fb8f79141a0aa5 (diff)
downloadbcm5719-llvm-d683a22dd21424416cb261c2de22520c84977c0f.tar.gz
bcm5719-llvm-d683a22dd21424416cb261c2de22520c84977c0f.zip
Revert "X86 memcpy lowering: use "rep movs" even when esi is used as base pointer" (r204174)
> For functions where esi is used as base pointer, we would previously fall ba > from lowering memcpy with "rep movs" because that clobbers esi. > > With this patch, we just store esi in another physical register, and restore > it afterwards. This adds a little bit of register preassure, but the more > efficient memcpy should be worth it. > > Differential Revision: http://llvm-reviews.chandlerc.com/D2968 This didn't work. I was ending up with code like this: lea edi,[esi+38h] mov ecx,0Fh mov edx,esi mov esi,ebx rep movs dword ptr es:[edi],dword ptr [esi] lea ecx,[esi+74h] <-- Ooops, we're now using esi before restoring it from edx. add ebx,3Ch mov esi,edx I guess if we want to do this we need stronger glue or something, or doing the expansion much later. llvm-svn: 204829
Diffstat (limited to 'clang/test/Analysis/malloc-three-arg.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud