diff options
| author | Andrew Trick <atrick@apple.com> | 2013-11-14 06:54:10 +0000 |
|---|---|---|
| committer | Andrew Trick <atrick@apple.com> | 2013-11-14 06:54:10 +0000 |
| commit | 561f2218e0cc947d74396016cbe4222a4bbb1d49 (patch) | |
| tree | 4f37202a212137e2a457c5e8cb2951d26f008a42 /llvm/test/CodeGen/X86 | |
| parent | 519b9e357fa1bd7279d094a335dfaae03267912f (diff) | |
| download | bcm5719-llvm-561f2218e0cc947d74396016cbe4222a4bbb1d49.tar.gz bcm5719-llvm-561f2218e0cc947d74396016cbe4222a4bbb1d49.zip | |
Minor extension to llvm.experimental.patchpoint: don't require a call.
If a null call target is provided, don't emit a dummy call. This
allows the runtime to reserve as little nop space as it needs without
the requirement of emitting a call.
llvm-svn: 194676
Diffstat (limited to 'llvm/test/CodeGen/X86')
| -rw-r--r-- | llvm/test/CodeGen/X86/patchpoint.ll | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/patchpoint.ll b/llvm/test/CodeGen/X86/patchpoint.ll index 5b96916804b..0e79a38dd62 100644 --- a/llvm/test/CodeGen/X86/patchpoint.ll +++ b/llvm/test/CodeGen/X86/patchpoint.ll @@ -79,6 +79,22 @@ entry: ret i64 10 } +; Test small patchpoints that don't emit calls. +define void @small_patchpoint_codegen(i64 %p1, i64 %p2, i64 %p3, i64 %p4) { +entry: +; CHECK-LABEL: small_patchpoint_codegen: +; CHECK: Ltmp +; CHECK: nop +; CHECK-NEXT: nop +; CHECK-NEXT: nop +; CHECK-NEXT: nop +; CHECK-NEXT: nop +; CHECK-NEXT: popq +; CHECK-NEXT: ret + %result = tail call i64 (i32, i32, i8*, i32, ...)* @llvm.experimental.patchpoint.i64(i32 5, i32 5, i8* null, i32 2, i64 %p1, i64 %p2) + ret void +} + declare void @llvm.experimental.stackmap(i32, i32, ...) declare void @llvm.experimental.patchpoint.void(i32, i32, i8*, i32, ...) declare i64 @llvm.experimental.patchpoint.i64(i32, i32, i8*, i32, ...) |

