summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen
diff options
context:
space:
mode:
authorSanjoy Das <sanjoy@playingwithpointers.com>2016-04-06 01:33:49 +0000
committerSanjoy Das <sanjoy@playingwithpointers.com>2016-04-06 01:33:49 +0000
commit65a60670e8a8e8380284d45f831f38baf6faba60 (patch)
treec826446d9f8c66f121eec90809b20c330cc58e22 /llvm/test/CodeGen
parent66a69ceed9d35d932892c58b683a21451bf92e5a (diff)
downloadbcm5719-llvm-65a60670e8a8e8380284d45f831f38baf6faba60.tar.gz
bcm5719-llvm-65a60670e8a8e8380284d45f831f38baf6faba60.zip
Lower @llvm.experimental.deoptimize as a noreturn call
While preserving the return value for @llvm.experimental.deoptimize at the IR level is useful during mid-level optimization, doing so at the machine instruction level requires generating some extra code and a return that is non-ideal. This change has LLVM lower ``` %val = call @llvm.experimental.deoptimize ret %val ``` to effectively ``` call @__llvm_deoptimize() unreachable ``` instead. llvm-svn: 265502
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r--llvm/test/CodeGen/X86/deopt-intrinsic.ll6
1 files changed, 0 insertions, 6 deletions
diff --git a/llvm/test/CodeGen/X86/deopt-intrinsic.ll b/llvm/test/CodeGen/X86/deopt-intrinsic.ll
index f9d7527e764..008075bfeae 100644
--- a/llvm/test/CodeGen/X86/deopt-intrinsic.ll
+++ b/llvm/test/CodeGen/X86/deopt-intrinsic.ll
@@ -18,8 +18,6 @@ define i32 @caller_0() {
; CHECK-NEXT: {{.+cfi.+}}
; CHECK-NEXT: callq ___llvm_deoptimize
; CHECK-NEXT: {{Ltmp[0-9]+}}:
-; CHECK-NEXT: popq %rcx
-; CHECK-NEXT: retq
entry:
%v = call i32(...) @llvm.experimental.deoptimize.i32() [ "deopt"(i32 0) ]
ret i32 %v
@@ -36,8 +34,6 @@ define i8 @caller_1() {
; CHECK-NEXT: movl $42, %edi
; CHECK-NEXT: callq ___llvm_deoptimize
; CHECK-NEXT: {{Ltmp[0-9]+}}:
-; CHECK-NEXT: popq %rcx
-; CHECK-NEXT: retq
entry:
%v = call i8(...) @llvm.experimental.deoptimize.i8(i32 42, float 500.0) [ "deopt"(i32 1) ]
@@ -55,8 +51,6 @@ define i64 @caller_2() {
; CHECK-NEXT: movl $42, %eax
; CHECK-NEXT: callq ___llvm_deoptimize
; CHECK-NEXT: {{Ltmp[0-9]+}}:
-; CHECK-NEXT: popq %rcx
-; CHECK-NEXT: retq
entry:
%v = call webkit_jscc i64(...) @llvm.experimental.deoptimize.i64(i32 42, float 500.0) [ "deopt"(i32 3) ]
OpenPOWER on IntegriCloud