[LLVMbugs] [Bug 8925] New: Unnecessary munging of stack pointer with guarantee tail calls
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Thu Jan 6 18:03:50 PST 2011
http://llvm.org/bugs/show_bug.cgi?id=8925
Summary: Unnecessary munging of stack pointer with guarantee
tail calls
Product: libraries
Version: trunk
Platform: PC
OS/Version: All
Status: NEW
Severity: normal
Priority: P
Component: Backend: X86
AssignedTo: unassignedbugs at nondot.org
ReportedBy: arplynn at gmail.com
CC: llvmbugs at cs.uiuc.edu
In the following test case:
define fastcc i32* @force.ri32(i32* %x) nounwind {
entry:
%nz = icmp eq i32* %x, null
br i1 %nz, label %Limpl1.pre, label %Limpl0.pre
Limpl0.pre: ; preds = %entry
ret i32* %x
Limpl1.pre: ; preds = %entry
tail call fastcc void @pr.error() noreturn nounwind
unreachable
}
declare fastcc void @pr.error() noreturn nounwind
LLVM currently generates:
_force.ri32: ## @force.ri32
## BB#0: ## %entry
subq $8, %rsp
testq %rdi, %rdi
je LBB0_2
## BB#1: ## %Limpl0.pre
movq %rdi, %rax
addq $8, %rsp
ret $8
LBB0_2: ## %Limpl1.pre
addq $8, %rsp
jmp _pr.error ## TAILCALL
The instructions that change %rsp are unnecessary.
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
More information about the llvm-bugs
mailing list