summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen
diff options
context:
space:
mode:
authorFangrui Song <maskray@google.com>2019-05-15 02:35:32 +0000
committerFangrui Song <maskray@google.com>2019-05-15 02:35:32 +0000
commitf4dfd63c74899e2953b176de2174ae7a8924a72c (patch)
tree10b8dd0ca599015981cbea658f927847791c4d5b /llvm/test/CodeGen
parentbd3adfe5e3bcb6f8f16166d1fd8a3f3c4fd70307 (diff)
downloadbcm5719-llvm-f4dfd63c74899e2953b176de2174ae7a8924a72c.tar.gz
bcm5719-llvm-f4dfd63c74899e2953b176de2174ae7a8924a72c.zip
[IR] Disallow llvm.global_ctors and llvm.global_dtors of the 2-field form in textual format
The 3-field form was introduced by D3499 in 2014 and the legacy 2-field form was planned to be removed in LLVM 4.0 For the textual format, this patch migrates the existing 2-field form to use the 3-field form and deletes the compatibility code. test/Verifier/global-ctors-2.ll checks we have a friendly error message. For bitcode, lib/IR/AutoUpgrade UpgradeGlobalVariables will upgrade the 2-field form (add i8* null as the third field). Reviewed By: rnk, dexonsmith Differential Revision: https://reviews.llvm.org/D61547 llvm-svn: 360742
Diffstat (limited to 'llvm/test/CodeGen')
-rw-r--r--llvm/test/CodeGen/AArch64/init-array.ll2
-rw-r--r--llvm/test/CodeGen/ARM/ctor_order.ll2
-rw-r--r--llvm/test/CodeGen/ARM/ctors_dtors.ll4
-rw-r--r--llvm/test/CodeGen/Mips/init-array.ll2
-rw-r--r--llvm/test/CodeGen/PowerPC/pr17354.ll2
-rw-r--r--llvm/test/CodeGen/RISCV/init-array.ll2
-rw-r--r--llvm/test/CodeGen/SPARC/2008-10-10-InlineAsmMemoryOperand.ll2
-rw-r--r--llvm/test/CodeGen/X86/2007-06-04-X86-64-CtorAsmBugs.ll2
-rw-r--r--llvm/test/CodeGen/X86/2011-08-29-InitOrder.ll4
-rw-r--r--llvm/test/CodeGen/X86/init-priority.ll2
-rw-r--r--llvm/test/CodeGen/X86/negate-add-zero.ll1
11 files changed, 12 insertions, 13 deletions
diff --git a/llvm/test/CodeGen/AArch64/init-array.ll b/llvm/test/CodeGen/AArch64/init-array.ll
index a275e7ecc57..825f1ad0b23 100644
--- a/llvm/test/CodeGen/AArch64/init-array.ll
+++ b/llvm/test/CodeGen/AArch64/init-array.ll
@@ -5,6 +5,6 @@ define internal void @_GLOBAL__I_a() section ".text.startup" {
ret void
}
-@llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_a }]
+@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I_a, i8* null }]
; CHECK: .section .init_array
diff --git a/llvm/test/CodeGen/ARM/ctor_order.ll b/llvm/test/CodeGen/ARM/ctor_order.ll
index 0cf87d7a97b..ca14b3ac3f1 100644
--- a/llvm/test/CodeGen/ARM/ctor_order.ll
+++ b/llvm/test/CodeGen/ARM/ctor_order.ll
@@ -21,7 +21,7 @@
; GNUEABI: .long f152
-@llvm.global_ctors = appending global [2 x { i32, void ()* }] [ { i32, void ()* } { i32 151, void ()* @f151 }, { i32, void ()* } { i32 152, void ()* @f152 } ]
+@llvm.global_ctors = appending global [2 x { i32, void ()*, i8* }] [ { i32, void ()*, i8* } { i32 151, void ()* @f151, i8* null }, { i32, void ()*, i8* } { i32 152, void ()* @f152, i8* null } ]
define void @f151() {
entry:
diff --git a/llvm/test/CodeGen/ARM/ctors_dtors.ll b/llvm/test/CodeGen/ARM/ctors_dtors.ll
index c097ade3c84..1320ee22851 100644
--- a/llvm/test/CodeGen/ARM/ctors_dtors.ll
+++ b/llvm/test/CodeGen/ARM/ctors_dtors.ll
@@ -11,8 +11,8 @@
; GNUEABI: .section .init_array,"aw",%init_array
; GNUEABI: .section .fini_array,"aw",%fini_array
-@llvm.global_ctors = appending global [1 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @__mf_init } ] ; <[1 x { i32, void ()* }]*> [#uses=0]
-@llvm.global_dtors = appending global [1 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @__mf_fini } ] ; <[1 x { i32, void ()* }]*> [#uses=0]
+@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [ { i32, void ()*, i8* } { i32 65535, void ()* @__mf_init, i8* null } ] ; <[1 x { i32, void ()*, i8* }]*> [#uses=0]
+@llvm.global_dtors = appending global [1 x { i32, void ()*, i8* }] [ { i32, void ()*, i8* } { i32 65535, void ()* @__mf_fini, i8* null } ] ; <[1 x { i32, void ()*, i8* }]*> [#uses=0]
define void @__mf_init() {
entry:
diff --git a/llvm/test/CodeGen/Mips/init-array.ll b/llvm/test/CodeGen/Mips/init-array.ll
index 1ca182dae7a..1f1b4a050d2 100644
--- a/llvm/test/CodeGen/Mips/init-array.ll
+++ b/llvm/test/CodeGen/Mips/init-array.ll
@@ -2,7 +2,7 @@
target triple = "mipsel-unknown-linux"
-@llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @test }]
+@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @test, i8* null }]
; CHECK: .section
; CHECK: .init_array
; CHECK-NOT: .ctors
diff --git a/llvm/test/CodeGen/PowerPC/pr17354.ll b/llvm/test/CodeGen/PowerPC/pr17354.ll
index 5160d836a26..9b5f52aeed8 100644
--- a/llvm/test/CodeGen/PowerPC/pr17354.ll
+++ b/llvm/test/CodeGen/PowerPC/pr17354.ll
@@ -10,7 +10,7 @@ target triple = "powerpc64-unknown-linux-gnu"
%struct.CS = type { i32 }
@_ZL3glb = internal global [1 x %struct.CS] zeroinitializer, align 4
-@llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_a }]
+@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I_a, i8* null }]
define internal void @__cxx_global_var_init() section ".text.startup" {
entry:
diff --git a/llvm/test/CodeGen/RISCV/init-array.ll b/llvm/test/CodeGen/RISCV/init-array.ll
index 1927eeb6d11..a2d176f2276 100644
--- a/llvm/test/CodeGen/RISCV/init-array.ll
+++ b/llvm/test/CodeGen/RISCV/init-array.ll
@@ -20,7 +20,7 @@ define internal void @_GLOBAL__I_a() section ".text.startup" {
ret void
}
-@llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_a }]
+@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I_a, i8* null }]
;INITARRAY: section .init_array
;INITARRAY-NOT: .section .ctors
diff --git a/llvm/test/CodeGen/SPARC/2008-10-10-InlineAsmMemoryOperand.ll b/llvm/test/CodeGen/SPARC/2008-10-10-InlineAsmMemoryOperand.ll
index 07e250b3c98..32ebc02ce20 100644
--- a/llvm/test/CodeGen/SPARC/2008-10-10-InlineAsmMemoryOperand.ll
+++ b/llvm/test/CodeGen/SPARC/2008-10-10-InlineAsmMemoryOperand.ll
@@ -2,7 +2,7 @@
; PR 1557
target datalayout = "E-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:32:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-f128:128:128"
-@llvm.global_ctors = appending global [1 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @set_fast_math } ] ; <[1 x { i32, void ()* }]*> [#uses=0]
+@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [ { i32, void ()*, i8* } { i32 65535, void ()* @set_fast_math, i8* null } ] ; <[1 x { i32, void ()*, i8* }]*> [#uses=0]
define internal void @set_fast_math() nounwind {
entry:
diff --git a/llvm/test/CodeGen/X86/2007-06-04-X86-64-CtorAsmBugs.ll b/llvm/test/CodeGen/X86/2007-06-04-X86-64-CtorAsmBugs.ll
index 1291dc9e6ed..7cba4c2531c 100644
--- a/llvm/test/CodeGen/X86/2007-06-04-X86-64-CtorAsmBugs.ll
+++ b/llvm/test/CodeGen/X86/2007-06-04-X86-64-CtorAsmBugs.ll
@@ -3,7 +3,7 @@
%struct.A = type { [1024 x i8] }
@_ZN1A1aE = global %struct.A zeroinitializer, align 32 ; <%struct.A*> [#uses=1]
-@llvm.global_ctors = appending global [1 x { i32, void ()* }] [ { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I__ZN1A1aE } ] ; <[1 x { i32, void ()* }]*> [#uses=0]
+@llvm.global_ctors = appending global [1 x { i32, void ()*, i8* }] [ { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I__ZN1A1aE, i8* null } ] ; <[1 x { i32, void ()*, i8* null }]*> [#uses=0]
define internal void @_GLOBAL__I__ZN1A1aE() section "__TEXT,__StaticInit,regular,pure_instructions" {
entry:
diff --git a/llvm/test/CodeGen/X86/2011-08-29-InitOrder.ll b/llvm/test/CodeGen/X86/2011-08-29-InitOrder.ll
index b278ad67415..2af7b1109f4 100644
--- a/llvm/test/CodeGen/X86/2011-08-29-InitOrder.ll
+++ b/llvm/test/CodeGen/X86/2011-08-29-InitOrder.ll
@@ -2,7 +2,7 @@
; RUN: llc < %s -mtriple=i386-apple-darwin | FileCheck %s --check-prefix=CHECK-DARWIN
; PR5329
-@llvm.global_ctors = appending global [3 x { i32, void ()* }] [{ i32, void ()* } { i32 2000, void ()* @construct_2 }, { i32, void ()* } { i32 3000, void ()* @construct_3 }, { i32, void ()* } { i32 1000, void ()* @construct_1 }]
+@llvm.global_ctors = appending global [3 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 2000, void ()* @construct_2, i8* null }, { i32, void ()*, i8* } { i32 3000, void ()* @construct_3, i8* null }, { i32, void ()*, i8* } { i32 1000, void ()* @construct_1, i8* null }]
; CHECK-DEFAULT: .section .ctors.64535,"aw",@progbits
; CHECK-DEFAULT: .long construct_1
; CHECK-DEFAULT: .section .ctors.63535,"aw",@progbits
@@ -14,7 +14,7 @@
; CHECK-DARWIN-NEXT: .long _construct_2
; CHECK-DARWIN-NEXT: .long _construct_3
-@llvm.global_dtors = appending global [3 x { i32, void ()* }] [{ i32, void ()* } { i32 2000, void ()* @destruct_2 }, { i32, void ()* } { i32 1000, void ()* @destruct_1 }, { i32, void ()* } { i32 3000, void ()* @destruct_3 }]
+@llvm.global_dtors = appending global [3 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 2000, void ()* @destruct_2, i8* null }, { i32, void ()*, i8* } { i32 1000, void ()* @destruct_1, i8* null }, { i32, void ()*, i8* } { i32 3000, void ()* @destruct_3, i8* null }]
; CHECK-DEFAULT: .section .dtors.64535,"aw",@progbits
; CHECK-DEFAULT: .long destruct_1
; CHECK-DEFAULT: .section .dtors.63535,"aw",@progbits
diff --git a/llvm/test/CodeGen/X86/init-priority.ll b/llvm/test/CodeGen/X86/init-priority.ll
index 85ef5475cf2..30e94841f79 100644
--- a/llvm/test/CodeGen/X86/init-priority.ll
+++ b/llvm/test/CodeGen/X86/init-priority.ll
@@ -16,7 +16,7 @@
@c1 = global %class.C zeroinitializer, align 1
@d1 = global %class.D zeroinitializer, align 1
-@llvm.global_ctors = appending global [2 x { i32, void ()* }] [{ i32, void ()* } { i32 101, void ()* @_GLOBAL__I_000101 }, { i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_a }]
+@llvm.global_ctors = appending global [2 x { i32, void ()*, i8* }] [{ i32, void ()*, i8* } { i32 101, void ()* @_GLOBAL__I_000101, i8* null }, { i32, void ()*, i8* } { i32 65535, void ()* @_GLOBAL__I_a, i8* null }]
define linkonce_odr void @_ZN1CC1Ev(%class.C* nocapture %this) {
entry:
diff --git a/llvm/test/CodeGen/X86/negate-add-zero.ll b/llvm/test/CodeGen/X86/negate-add-zero.ll
index beb87e3e903..78a4cf89a7e 100644
--- a/llvm/test/CodeGen/X86/negate-add-zero.ll
+++ b/llvm/test/CodeGen/X86/negate-add-zero.ll
@@ -188,7 +188,6 @@ target triple = "i386-apple-darwin7"
@"\01LC28" = external constant [15 x i8] ; <[15 x i8]*> [#uses=0]
@"\01LC29" = external constant [20 x i8] ; <[20 x i8]*> [#uses=0]
@"\01LC30" = external constant [41 x i8] ; <[41 x i8]*> [#uses=0]
-@llvm.global_ctors = external global [1 x { i32, void ()* }] ; <[1 x { i32, void ()* }]*> [#uses=0]
declare void @_GLOBAL__I__ZN9HingeNode7DEG2RADE() section "__TEXT,__StaticInit,regular,pure_instructions"
OpenPOWER on IntegriCloud