aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/statepoint-allocas.ll
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/X86/statepoint-allocas.ll')
-rw-r--r--test/CodeGen/X86/statepoint-allocas.ll131
1 files changed, 0 insertions, 131 deletions
diff --git a/test/CodeGen/X86/statepoint-allocas.ll b/test/CodeGen/X86/statepoint-allocas.ll
deleted file mode 100644
index 95ce8f376170..000000000000
--- a/test/CodeGen/X86/statepoint-allocas.ll
+++ /dev/null
@@ -1,131 +0,0 @@
-; RUN: llc < %s | FileCheck %s
-; Check that we can lower a use of an alloca both as a deopt value (where the
-; exact meaning is up to the consumer of the stackmap) and as an explicit spill
-; slot used for GC.
-
-target datalayout = "e-i64:64-f80:128-n8:16:32:64-S128"
-target triple = "x86_64-pc-linux-gnu"
-
-declare zeroext i1 @return_i1()
-
-; Can we handle an explicit relocation slot (in the form of an alloca) given
-; to the statepoint?
-define i32 addrspace(1)* @test(i32 addrspace(1)* %ptr) gc "statepoint-example" {
-; CHECK-LABEL: test
-; CHECK: pushq %rax
-; CHECK: movq %rdi, (%rsp)
-; CHECK: callq return_i1
-; CHECK: movq (%rsp), %rax
-; CHECK: popq %rcx
-; CHECK: retq
-entry:
- %alloca = alloca i32 addrspace(1)*, align 8
- store i32 addrspace(1)* %ptr, i32 addrspace(1)** %alloca
- call token (i64, i32, i1 ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_i1f(i64 0, i32 0, i1 ()* @return_i1, i32 0, i32 0, i32 0, i32 0, i32 addrspace(1)** %alloca)
- %rel = load i32 addrspace(1)*, i32 addrspace(1)** %alloca
- ret i32 addrspace(1)* %rel
-}
-
-; Can we handle an alloca as a deopt value?
-define i32 addrspace(1)* @test2(i32 addrspace(1)* %ptr) gc "statepoint-example" {
-; CHECK-LABEL: test2
-; CHECK: pushq %rax
-; CHECK: movq %rdi, (%rsp)
-; CHECK: callq return_i1
-; CHECK: xorl %eax, %eax
-; CHECK: popq %rcx
-; CHECK: retq
-entry:
- %alloca = alloca i32 addrspace(1)*, align 8
- store i32 addrspace(1)* %ptr, i32 addrspace(1)** %alloca
- call token (i64, i32, i1 ()*, i32, i32, ...) @llvm.experimental.gc.statepoint.p0f_i1f(i64 0, i32 0, i1 ()* @return_i1, i32 0, i32 0, i32 0, i32 1, i32 addrspace(1)** %alloca)
- ret i32 addrspace(1)* null
-}
-
-declare token @llvm.experimental.gc.statepoint.p0f_i1f(i64, i32, i1 ()*, i32, i32, ...)
-
-
-; CHECK-LABEL: .section .llvm_stackmaps
-; CHECK-NEXT: __LLVM_StackMaps:
-; Header
-; CHECK-NEXT: .byte 2
-; CHECK-NEXT: .byte 0
-; CHECK-NEXT: .short 0
-; Num Functions
-; CHECK-NEXT: .long 2
-; Num LargeConstants
-; CHECK-NEXT: .long 0
-; Num Callsites
-; CHECK-NEXT: .long 2
-
-; Functions and stack size
-; CHECK-NEXT: .quad test
-; CHECK-NEXT: .quad 8
-; CHECK-NEXT: .quad 1
-; CHECK-NEXT: .quad test2
-; CHECK-NEXT: .quad 8
-; CHECK-NEXT: .quad 1
-
-; Large Constants
-; Statepoint ID only
-; CHECK: .quad 0
-
-; Callsites
-; The GC one
-; CHECK: .long .Ltmp0-test
-; CHECK: .short 0
-; CHECK: .short 4
-; SmallConstant (0)
-; CHECK: .byte 4
-; CHECK: .byte 8
-; CHECK: .short 0
-; CHECK: .long 0
-; SmallConstant (0)
-; CHECK: .byte 4
-; CHECK: .byte 8
-; CHECK: .short 0
-; CHECK: .long 0
-; SmallConstant (0)
-; CHECK: .byte 4
-; CHECK: .byte 8
-; CHECK: .short 0
-; CHECK: .long 0
-; Direct Spill Slot [RSP+0]
-; CHECK: .byte 2
-; CHECK: .byte 8
-; CHECK: .short 7
-; CHECK: .long 0
-; No Padding or LiveOuts
-; CHECK: .short 0
-; CHECK: .short 0
-; CHECK: .p2align 3
-
-; The Deopt one
-; CHECK: .long .Ltmp1-test2
-; CHECK: .short 0
-; CHECK: .short 4
-; SmallConstant (0)
-; CHECK: .byte 4
-; CHECK: .byte 8
-; CHECK: .short 0
-; CHECK: .long 0
-; SmallConstant (0)
-; CHECK: .byte 4
-; CHECK: .byte 8
-; CHECK: .short 0
-; CHECK: .long 0
-; SmallConstant (1)
-; CHECK: .byte 4
-; CHECK: .byte 8
-; CHECK: .short 0
-; CHECK: .long 1
-; Direct Spill Slot [RSP+0]
-; CHECK: .byte 2
-; CHECK: .byte 8
-; CHECK: .short 7
-; CHECK: .long 0
-
-; No Padding or LiveOuts
-; CHECK: .short 0
-; CHECK: .short 0
-; CHECK: .p2align 3