On Aug 27, 2007, at 9:26 AM, Dan Gohman wrote:
> Author: djg
> Date: Mon Aug 27 11:26:13 2007
> New Revision: 41489
>
> URL: http://llvm.org/viewvc/llvm-project?rev=41489&view=rev
> Log:
> If the source and destination pointers in an llvm.memmove are known
> to not alias each other, it can be tra
> This is nifty, but shouldn't this be done at the LLVM IR level? I
> can't think of cases where lowering would create new memmove calls.
I'm not aware of any cases where memmove vs. memcpy matters before
codegen currently. If it were done at the LLVM IR level, would it be
too trivial to be in
Dan,
The memmove tests you added are failing on x86 darwin.
Here is the output from one of the tests:
lattner% llvm-as < test/CodeGen/X86/memmove-0.ll | llc -march=x86
.text
.align 4,0x90
.globl _foo
_foo:
subl$12, %esp
movl20(%esp), %eax
On Aug 27, 2007, at 10:46 AM, Dan Gohman wrote:
>> This is nifty, but shouldn't this be done at the LLVM IR level? I
>> can't think of cases where lowering would create new memmove calls.
>
> I'm not aware of any cases where memmove vs. memcpy matters before
> codegen currently. If it were done
> I'm not aware of any cases where memmove vs. memcpy matters before
> codegen currently. If it were done at the LLVM IR level, would it be
> too trivial to be in a pass by itself, or would you want to add it,
> along with an addRequired, to some existing pass?
Doing it at the LLVM IL would also b