[llvm-commits] [llvm] r169791 - in /llvm/trunk: include/llvm/Target/ lib/CodeGen/SelectionDAG/ lib/Target/ARM/ lib/Target/Mips/ lib/Target/X86/ test/CodeGen/ARM/ test/CodeGen/X86/

Evan Cheng evan.cheng at apple.com
Mon Dec 10 17:35:24 PST 2012


On Dec 10, 2012, at 3:35 PM, Eli Friedman <eli.friedman at gmail.com> wrote:

> On Mon, Dec 10, 2012 at 3:21 PM, Evan Cheng <evan.cheng at apple.com> wrote:
>> Author: evancheng
>> Date: Mon Dec 10 17:21:26 2012
>> New Revision: 169791
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=169791&view=rev
>> Log:
>> Some enhancements for memcpy / memset inline expansion.
>> 1. Teach it to use overlapping unaligned load / store to copy / set the trailing
>>   bytes. e.g. On 86, use two pairs of movups / movaps for 17 - 31 byte copies.
>> 2. Use f64 for memcpy / memset on targets where i64 is not legal but f64 is. e.g.
>>   x86 and ARM.
> 
> This won't work correctly on x86 if we don't have SSE2.  (Loading an
> f64 into an x87 register is a lossy operation.)

That should not happen with this patch.

Evan

> 
> -Eli




More information about the llvm-commits mailing list