Fwd: PATCH: don't tail call functions with 3 'inreg' arguments on x86-32 PIC
Eli Bendersky
eliben at google.com
Wed Feb 13 09:00:42 PST 2013
[forwarding review to llvm-commits. I hit "Reply" by mistake]
On Tue, Feb 12, 2013 at 6:21 PM, Nick Lewycky <nlewycky at google.com> wrote:
> This patch is one way of fixing PR15250, by only forming a TCRETURN call to
> a function with up to two 'inreg' arguments. This extends a fix implemented
> by Evan in r105092.
>
> Patch attached, please review!
>
LGTM, with a small question about the test:
+; RUN: llc < %s -relocation-model=pic | FileCheck %s
+; PR15250
+
+target datalayout =
"e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:32:64-v64:64:64-v128:128:128-a0:0:64-f80:32:32-n8:16:32-S128"
+target triple = "i386-unknown-linux-gnu"
+
+declare void @callee1(i32 inreg, i32 inreg, i32 inreg)
+define void @test1(i32 %a, i32 %b) nounwind {
+; CHECK: test1:
+; CHECK: calll callee1 at PLT
+ tail call void @callee1(i32 inreg 0, i32 inreg 0, i32 inreg 0) nounwind
+ ret void
+}
Should the test also verify that a tail call did not happen here?
Eli
More information about the llvm-commits
mailing list