mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-02 22:23:10 +00:00
Require a GC strategy be specified for functions which use gc.statepoint
This was discussed a while back and I left it optional for migration. Since it's been far more than the 'week or two' that was discussed, time to actually make this manditory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@233357 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -5,7 +5,7 @@ target triple = "x86_64-pc-linux-gnu"
|
||||
|
||||
declare zeroext i1 @return_i1()
|
||||
|
||||
define i32 @test_sor_basic(i32* %base) {
|
||||
define i32 @test_sor_basic(i32* %base) gc "statepoint-example" {
|
||||
; CHECK: getelementptr i32, i32* %base, i32 15
|
||||
; CHECK: getelementptr i32, i32* %base-new, i32 15
|
||||
entry:
|
||||
@@ -17,7 +17,7 @@ entry:
|
||||
ret i32 %ret
|
||||
}
|
||||
|
||||
define i32 @test_sor_two_derived(i32* %base) {
|
||||
define i32 @test_sor_two_derived(i32* %base) gc "statepoint-example" {
|
||||
; CHECK: getelementptr i32, i32* %base, i32 15
|
||||
; CHECK: getelementptr i32, i32* %base, i32 12
|
||||
; CHECK: getelementptr i32, i32* %base-new, i32 15
|
||||
@@ -33,7 +33,7 @@ entry:
|
||||
ret i32 %ret
|
||||
}
|
||||
|
||||
define i32 @test_sor_ooo(i32* %base) {
|
||||
define i32 @test_sor_ooo(i32* %base) gc "statepoint-example" {
|
||||
; CHECK: getelementptr i32, i32* %base, i32 15
|
||||
; CHECK: getelementptr i32, i32* %base-new, i32 15
|
||||
entry:
|
||||
@@ -45,7 +45,7 @@ entry:
|
||||
ret i32 %ret
|
||||
}
|
||||
|
||||
define i32 @test_sor_gep_smallint([3 x i32]* %base) {
|
||||
define i32 @test_sor_gep_smallint([3 x i32]* %base) gc "statepoint-example" {
|
||||
; CHECK: getelementptr [3 x i32], [3 x i32]* %base, i32 0, i32 2
|
||||
; CHECK: getelementptr [3 x i32], [3 x i32]* %base-new, i32 0, i32 2
|
||||
entry:
|
||||
@@ -57,7 +57,7 @@ entry:
|
||||
ret i32 %ret
|
||||
}
|
||||
|
||||
define i32 @test_sor_gep_largeint([3 x i32]* %base) {
|
||||
define i32 @test_sor_gep_largeint([3 x i32]* %base) gc "statepoint-example" {
|
||||
; CHECK: getelementptr [3 x i32], [3 x i32]* %base, i32 0, i32 21
|
||||
; CHECK-NOT: getelementptr [3 x i32], [3 x i32]* %base-new, i32 0, i32 21
|
||||
entry:
|
||||
@@ -69,7 +69,7 @@ entry:
|
||||
ret i32 %ret
|
||||
}
|
||||
|
||||
define i32 @test_sor_noop(i32* %base) {
|
||||
define i32 @test_sor_noop(i32* %base) gc "statepoint-example" {
|
||||
; CHECK: getelementptr i32, i32* %base, i32 15
|
||||
; CHECK: call i32* @llvm.experimental.gc.relocate.p0i32(i32 %tok, i32 4, i32 5)
|
||||
; CHECK: call i32* @llvm.experimental.gc.relocate.p0i32(i32 %tok, i32 4, i32 6)
|
||||
|
||||
Reference in New Issue
Block a user