diff options
| author | Sanjoy Das <sanjoy@playingwithpointers.com> | 2016-04-06 01:33:49 +0000 |
|---|---|---|
| committer | Sanjoy Das <sanjoy@playingwithpointers.com> | 2016-04-06 01:33:49 +0000 |
| commit | 65a60670e8a8e8380284d45f831f38baf6faba60 (patch) | |
| tree | c826446d9f8c66f121eec90809b20c330cc58e22 /llvm/test/CodeGen | |
| parent | 66a69ceed9d35d932892c58b683a21451bf92e5a (diff) | |
| download | bcm5719-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.ll | 6 |
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) ] |

