[llvm-commits] [llvm] r95351 - in /llvm/trunk: lib/Target/X86/X86ISelLowering.cpp test/CodeGen/X86/tailcall2.ll
Duncan Sands
baldrick at free.fr
Fri Feb 5 12:51:51 PST 2010
Hi Evan,
>> if you have a tail call with byval arguments, does this mean that an
>> extra copy
>> of the byval argument won't be made? This came up with the C++
>
> Correct. The whole point is the byval argument is already available in
> the caller's incoming argument stack. This kind of tail call is
> especially beneficial.
this is great - all of this tailcall work is doing nice things to thunks,
for example the thunk in 2003-11-27-MultipleInheritanceThunk.cpp now compiles
(using dragonegg) to this:
_ZThn16_N20AliasAnalysisCounter13getModRefInfoE8CallSite:
.Leh_func_begin2:
subq $8, %rsp
.Llabel1:
addq $-16, %rdi
addq $8, %rsp
jmp _ZN20AliasAnalysisCounter13getModRefInfoE8CallSite # TAILCALL
Pity about the stack pointer adjustments, but compared to what it was before,
it's like Christmas came round all over again!
Ciao,
Duncan.
More information about the llvm-commits
mailing list