[llvm-bugs] [Bug 35065] New: Missing tail calls for large structs
via llvm-bugs
llvm-bugs at lists.llvm.org
Tue Oct 24 12:54:35 PDT 2017
https://bugs.llvm.org/show_bug.cgi?id=35065
Bug ID: 35065
Summary: Missing tail calls for large structs
Product: libraries
Version: trunk
Hardware: PC
OS: All
Status: NEW
Severity: enhancement
Priority: P
Component: Backend: X86
Assignee: unassignedbugs at nondot.org
Reporter: jmuizelaar at mozilla.com
CC: llvm-bugs at lists.llvm.org
The following code:
struct Foo {
int o[16];
};
__attribute__((noinline))
Foo moo()
{
return {0};
}
Foo goo()
{
return moo();
}
compiles to:
moo(): # @moo()
xorps xmm0, xmm0
movups xmmword ptr [rdi + 48], xmm0
movups xmmword ptr [rdi + 32], xmm0
movups xmmword ptr [rdi + 16], xmm0
movups xmmword ptr [rdi], xmm0
mov rax, rdi
ret
goo(): # @goo()
push rbx
mov rbx, rdi
call moo()
mov rax, rbx
pop rbx
ret
goo could just be:
goo():
jmp moo
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20171024/9494264e/attachment.html>
More information about the llvm-bugs
mailing list