Skip to content

Commit 2262b04

Browse files
committed
[test] Add explicit dso_local to constant/global variable declarations
They are currently implicit because TargetMachine::shouldAssumeDSOLocal implies dso_local. For external data, clang -fno-pic emits the dso_local specifier for ELF and non-MinGW COFF. Adding explicit dso_local makes these tests in align with the clang behavior and helps implementing an option to use GOT indirection for external data access in -fno-pic mode (to avoid copy relocations).
1 parent a28db8b commit 2262b04

File tree

150 files changed

+388
-377
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

150 files changed

+388
-377
lines changed

llvm/test/CodeGen/AArch64/arm64-bitfield-extract.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -793,7 +793,7 @@ define i64 @fct18(i32 %xor72) nounwind ssp {
793793
}
794794

795795
; Using the access to the global array to keep the instruction and control flow.
796-
@first_ones = external global [65536 x i8]
796+
@first_ones = external dso_local global [65536 x i8]
797797

798798
; Function Attrs: nounwind readonly ssp
799799
define i32 @fct19(i64 %arg1) nounwind readonly ssp {
@@ -965,7 +965,7 @@ end:
965965
}
966966

967967
; Check if we can still catch UBFX when "AND" is used by SHL.
968-
@arr = external global [8 x [64 x i64]]
968+
@arr = external dso_local global [8 x [64 x i64]]
969969
define i64 @fct21(i64 %x) {
970970
; LLC-LABEL: fct21:
971971
; LLC: // %bb.0: // %entry

llvm/test/CodeGen/AArch64/arm64-csldst-mmo.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
; RUN: llc < %s -mtriple=arm64-linux-gnu -mcpu=cortex-a57 -enable-misched=0 -debug-only=machine-scheduler -o - 2>&1 > /dev/null | FileCheck %s
33
; REQUIRES: asserts
44

5-
@G = external global [0 x i32], align 4
5+
@G = external dso_local global [0 x i32], align 4
66

77
; Check that MMOs are added to epilogue calle-save restore loads so
88
; that the store to G is not considered dependant on the callee-save

llvm/test/CodeGen/AArch64/arm64-memcpy-inline.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
%struct.x = type { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8 }
44

5-
@src = external global %struct.x
6-
@dst = external global %struct.x
5+
@src = external dso_local global %struct.x
6+
@dst = external dso_local global %struct.x
77

88
@.str1 = private unnamed_addr constant [31 x i8] c"DHRYSTONE PROGRAM, SOME STRING\00", align 1
99
@.str2 = private unnamed_addr constant [36 x i8] c"DHRYSTONE PROGRAM, SOME STRING BLAH\00", align 1

llvm/test/CodeGen/AArch64/ghc-cc.ll

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,26 @@
22

33
; Check the GHC call convention works (aarch64)
44

5-
@base = external global i64 ; assigned to register: r19
6-
@sp = external global i64 ; assigned to register: r20
7-
@hp = external global i64 ; assigned to register: r21
8-
@r1 = external global i64 ; assigned to register: r22
9-
@r2 = external global i64 ; assigned to register: r23
10-
@r3 = external global i64 ; assigned to register: r24
11-
@r4 = external global i64 ; assigned to register: r25
12-
@r5 = external global i64 ; assigned to register: r26
13-
@r6 = external global i64 ; assigned to register: r27
14-
@splim = external global i64 ; assigned to register: r28
5+
@base = external dso_local global i64 ; assigned to register: r19
6+
@sp = external dso_local global i64 ; assigned to register: r20
7+
@hp = external dso_local global i64 ; assigned to register: r21
8+
@r1 = external dso_local global i64 ; assigned to register: r22
9+
@r2 = external dso_local global i64 ; assigned to register: r23
10+
@r3 = external dso_local global i64 ; assigned to register: r24
11+
@r4 = external dso_local global i64 ; assigned to register: r25
12+
@r5 = external dso_local global i64 ; assigned to register: r26
13+
@r6 = external dso_local global i64 ; assigned to register: r27
14+
@splim = external dso_local global i64 ; assigned to register: r28
1515

16-
@f1 = external global float ; assigned to register: s8
17-
@f2 = external global float ; assigned to register: s9
18-
@f3 = external global float ; assigned to register: s10
19-
@f4 = external global float ; assigned to register: s11
16+
@f1 = external dso_local global float ; assigned to register: s8
17+
@f2 = external dso_local global float ; assigned to register: s9
18+
@f3 = external dso_local global float ; assigned to register: s10
19+
@f4 = external dso_local global float ; assigned to register: s11
2020

21-
@d1 = external global double ; assigned to register: d12
22-
@d2 = external global double ; assigned to register: d13
23-
@d3 = external global double ; assigned to register: d14
24-
@d4 = external global double ; assigned to register: d15
21+
@d1 = external dso_local global double ; assigned to register: d12
22+
@d2 = external dso_local global double ; assigned to register: d13
23+
@d3 = external dso_local global double ; assigned to register: d14
24+
@d4 = external dso_local global double ; assigned to register: d15
2525

2626
define ghccc i64 @addtwo(i64 %x, i64 %y) nounwind {
2727
entry:

llvm/test/CodeGen/AArch64/global-alignment.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ define i64 @test_var32_alias() {
6060
ret i64 %val
6161
}
6262

63-
@yet_another_var = external global {i32, i32}
63+
@yet_another_var = external dso_local global {i32, i32}
6464

6565
define i64 @test_yet_another_var() {
6666
; CHECK-LABEL: test_yet_another_var:

llvm/test/CodeGen/AArch64/ldradr.ll

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33

44
%struct.T = type <{ i32, i64, i8, i32 }>
55

6-
@ptr = external local_unnamed_addr global i32*, align 8
7-
@ch = external local_unnamed_addr global i32, align 4
8-
@ch8 = external local_unnamed_addr global i8, align 4
9-
@t = external local_unnamed_addr global %struct.T, align 4
10-
@t2 = external local_unnamed_addr global %struct.T, align 2
11-
@f = external local_unnamed_addr global float, align 4
6+
@ptr = external dso_local local_unnamed_addr global i32*, align 8
7+
@ch = external dso_local local_unnamed_addr global i32, align 4
8+
@ch8 = external dso_local local_unnamed_addr global i8, align 4
9+
@t = external dso_local local_unnamed_addr global %struct.T, align 4
10+
@t2 = external dso_local local_unnamed_addr global %struct.T, align 2
11+
@f = external dso_local local_unnamed_addr global float, align 4
1212

1313
define i32 @barp() {
1414
; CHECK-LABEL: barp:

llvm/test/CodeGen/AArch64/merge-store.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
; RUN: llc < %s -mtriple=aarch64-unknown-unknown -mcpu=cyclone -mattr=+slow-misaligned-128store | FileCheck %s --check-prefixes=CHECK,SPLITTING
33
; RUN: llc < %s -mtriple=aarch64-eabi -mattr=-slow-misaligned-128store | FileCheck %s --check-prefixes=CHECK,MISALIGNED
44

5-
@g0 = external global <3 x float>, align 16
6-
@g1 = external global <3 x float>, align 4
5+
@g0 = external dso_local global <3 x float>, align 16
6+
@g1 = external dso_local global <3 x float>, align 4
77

88
define void @blam() {
99
; SPLITTING-LABEL: blam:

llvm/test/CodeGen/SystemZ/ghc-cc-01.ll

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,32 @@
22
;
33
; RUN: llc -mtriple=s390x-ibm-linux < %s | FileCheck %s
44

5-
@base = external global i64 ; assigned to register: r7
6-
@sp = external global i64 ; assigned to register: r8
7-
@hp = external global i64 ; assigned to register: r10
8-
@r1 = external global i64 ; assigned to register: r11
9-
@r2 = external global i64 ; assigned to register: r12
10-
@r3 = external global i64 ; assigned to register: r13
11-
@r4 = external global i64 ; assigned to register: r6
12-
@r5 = external global i64 ; assigned to register: r2
13-
@r6 = external global i64 ; assigned to register: r3
14-
@r7 = external global i64 ; assigned to register: r4
15-
@r8 = external global i64 ; assigned to register: r5
16-
@splim = external global i64 ; assigned to register: r9
5+
@base = external dso_local global i64 ; assigned to register: r7
6+
@sp = external dso_local global i64 ; assigned to register: r8
7+
@hp = external dso_local global i64 ; assigned to register: r10
8+
@r1 = external dso_local global i64 ; assigned to register: r11
9+
@r2 = external dso_local global i64 ; assigned to register: r12
10+
@r3 = external dso_local global i64 ; assigned to register: r13
11+
@r4 = external dso_local global i64 ; assigned to register: r6
12+
@r5 = external dso_local global i64 ; assigned to register: r2
13+
@r6 = external dso_local global i64 ; assigned to register: r3
14+
@r7 = external dso_local global i64 ; assigned to register: r4
15+
@r8 = external dso_local global i64 ; assigned to register: r5
16+
@splim = external dso_local global i64 ; assigned to register: r9
1717

18-
@f1 = external global float ; assigned to register: s8
19-
@f2 = external global float ; assigned to register: s9
20-
@f3 = external global float ; assigned to register: s10
21-
@f4 = external global float ; assigned to register: s11
22-
@f5 = external global float ; assigned to register: s0
23-
@f6 = external global float ; assigned to register: s1
18+
@f1 = external dso_local global float ; assigned to register: s8
19+
@f2 = external dso_local global float ; assigned to register: s9
20+
@f3 = external dso_local global float ; assigned to register: s10
21+
@f4 = external dso_local global float ; assigned to register: s11
22+
@f5 = external dso_local global float ; assigned to register: s0
23+
@f6 = external dso_local global float ; assigned to register: s1
2424

25-
@d1 = external global double ; assigned to register: d12
26-
@d2 = external global double ; assigned to register: d13
27-
@d3 = external global double ; assigned to register: d14
28-
@d4 = external global double ; assigned to register: d15
29-
@d5 = external global double ; assigned to register: d2
30-
@d6 = external global double ; assigned to register: d3
25+
@d1 = external dso_local global double ; assigned to register: d12
26+
@d2 = external dso_local global double ; assigned to register: d13
27+
@d3 = external dso_local global double ; assigned to register: d14
28+
@d4 = external dso_local global double ; assigned to register: d15
29+
@d5 = external dso_local global double ; assigned to register: d2
30+
@d6 = external dso_local global double ; assigned to register: d3
3131

3232
define ghccc void @foo() nounwind {
3333
entry:

llvm/test/CodeGen/SystemZ/ipra.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
;
99
; CHECK: fn2 Clobbered Registers: {{.*}} $r0h
1010

11-
@h = external global [0 x i32], align 4
12-
@n = external global i32*, align 8
11+
@h = external dso_local global [0 x i32], align 4
12+
@n = external dso_local global i32*, align 8
1313

1414
define void @fn1() {
1515
bb:

llvm/test/CodeGen/SystemZ/la-01.ll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,11 @@
33
;
44
; RUN: llc < %s -mtriple=s390x-linux-gnu | FileCheck %s
55

6-
@e4 = external global i32
6+
@e4 = external dso_local global i32
77
@d4 = global i32 1
8-
@e2 = external global i32, align 2
8+
@e2 = external dso_local global i32, align 2
99
@d2 = global i32 1, align 2
10-
@e1 = external global i32, align 1
10+
@e1 = external dso_local global i32, align 1
1111
@d1 = global i32 1, align 1
1212

1313
declare void @ef()

llvm/test/CodeGen/SystemZ/memcpy-02.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
@g2dst = global i16 2
99
@g3 = global i32 3
1010
@g4 = global i64 4
11-
@g5src = external global fp128, align 16
12-
@g5dst = external global fp128, align 16
11+
@g5src = external dso_local global fp128, align 16
12+
@g5dst = external dso_local global fp128, align 16
1313

1414
; Test the simple i8 case.
1515
define void @f1(i8 *%ptr1) {

llvm/test/CodeGen/SystemZ/subregliveness-01.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-v128:64-a:8:16-n32:64"
77
target triple = "s390x-ibm-linux"
88

9-
@g_439 = external global i32, align 4
10-
@g_399 = external global { i8, i8, i8, i8, i8, i8 }, align 8
9+
@g_439 = external dso_local global i32, align 4
10+
@g_399 = external dso_local global { i8, i8, i8, i8, i8, i8 }, align 8
1111

1212
; Function Attrs: nounwind
1313
define void @main() #0 {

llvm/test/CodeGen/SystemZ/subregliveness-05.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-a:8:16-n32:64"
77
target triple = "s390x-ibm-linux"
88

9-
@g_65 = external global i32, align 4
9+
@g_65 = external dso_local global i32, align 4
1010

1111
; Function Attrs: nounwind
1212
define void @main(i1 %x) #0 {

llvm/test/CodeGen/WebAssembly/offset-folding.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
66
target triple = "wasm32-unknown-unknown"
77

8-
@x = external global [0 x i32]
8+
@x = external dso_local global [0 x i32]
99
@y = global [50 x i32] zeroinitializer
1010

1111
; Test basic constant offsets of both defined and external symbols.

llvm/test/CodeGen/X86/2005-01-17-CycleInDAG.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
; RUN: llc < %s -mtriple=i686-- | FileCheck %s
77

8-
@GLOBAL = external global i32
8+
@GLOBAL = external dso_local global i32
99

1010
define i32 @test(i32* %P1, i32* %P2, i32* %P3) nounwind {
1111
; CHECK-LABEL: test:

llvm/test/CodeGen/X86/2006-01-19-ISelFoldingBug.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
target triple = "i686-unknown-unknown"
88

9-
@A = external global i32
9+
@A = external dso_local global i32
1010

1111
define i32 @test5(i32 %B, i8 %C) {
1212
; CHECK-LABEL: test5:

llvm/test/CodeGen/X86/2006-05-02-InstrSched1.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
; It's possible to schedule this in 14 instructions by avoiding
66
; callee-save registers, but the scheduler isn't currently that
77
; conervative with registers.
8-
@size20 = external global i32 ; <i32*> [#uses=1]
9-
@in5 = external global i8* ; <i8**> [#uses=1]
8+
@size20 = external dso_local global i32 ; <i32*> [#uses=1]
9+
@in5 = external dso_local global i8* ; <i8**> [#uses=1]
1010

1111
define i32 @compare(i8* %a, i8* %b) nounwind {
1212
%tmp = bitcast i8* %a to i32* ; <i32*> [#uses=1]

llvm/test/CodeGen/X86/2006-05-08-CoalesceSubRegClass.ll

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
; RUN: llc < %s -mtriple=i686-- -relocation-model=static | FileCheck %s
66

7-
@B = external global i32 ; <i32*> [#uses=2]
8-
@C = external global i16* ; <i16**> [#uses=2]
7+
@B = external dso_local global i32 ; <i32*> [#uses=2]
8+
@C = external dso_local global i16* ; <i16**> [#uses=2]
99

1010
define void @test(i32 %A) {
1111
; CHECK-LABEL: test:

llvm/test/CodeGen/X86/2006-05-08-InstrSched.ll

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
22
; RUN: llc < %s -mtriple=i686-- -relocation-model=static | FileCheck %s
33

4-
@A = external global i16* ; <i16**> [#uses=1]
5-
@B = external global i32 ; <i32*> [#uses=1]
6-
@C = external global i32 ; <i32*> [#uses=2]
4+
@A = external dso_local global i16* ; <i16**> [#uses=1]
5+
@B = external dso_local global i32 ; <i32*> [#uses=1]
6+
@C = external dso_local global i32 ; <i32*> [#uses=2]
77

88
define void @test() {
99
; CHECK-LABEL: test:

llvm/test/CodeGen/X86/2006-10-10-FindModifiedNodeSlotBug.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
; RUN: llc < %s -mtriple=i686-- | FileCheck %s
33
; Bug in FindModifiedNodeSlot cause tmp14 load to become a zextload and shr 31
44
; is then optimized away.
5-
@tree_code_type = external global [0 x i32] ; <[0 x i32]*> [#uses=1]
5+
@tree_code_type = external dso_local global [0 x i32] ; <[0 x i32]*> [#uses=1]
66

77
define void @copy_if_shared_r() {
88
; CHECK-LABEL: copy_if_shared_r:

llvm/test/CodeGen/X86/2006-10-13-CycleInDAG.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
; RUN: llc < %s -mtriple=i686--
2-
@str = external global [18 x i8] ; <[18 x i8]*> [#uses=1]
2+
@str = external dso_local global [18 x i8] ; <[18 x i8]*> [#uses=1]
33

44
define void @test() {
55
bb.i:

llvm/test/CodeGen/X86/2007-05-05-VecCastExpand.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
; RUN: llc < %s -mtriple=i686-- -mcpu=i386 -mattr=+sse
22
; PR1371
33

4-
@str = external global [18 x i8] ; <[18 x i8]*> [#uses=1]
4+
@str = external dso_local global [18 x i8] ; <[18 x i8]*> [#uses=1]
55

66
define void @test() {
77
bb.i:

llvm/test/CodeGen/X86/2008-02-05-ISelCrash.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
; RUN: llc < %s -mtriple=i686--
22
; PR1975
33

4-
@nodes = external global i64 ; <i64*> [#uses=2]
4+
@nodes = external dso_local global i64 ; <i64*> [#uses=2]
55

66
define fastcc i32 @ab(i32 %alpha, i32 %beta) nounwind {
77
entry:

llvm/test/CodeGen/X86/2008-04-24-MemCpyBug.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
; Don't accidentally add the offset twice for trailing bytes.
44

55
%struct.S63 = type { [63 x i8] }
6-
@g1s63 = external global %struct.S63 ; <%struct.S63*> [#uses=1]
6+
@g1s63 = external dso_local global %struct.S63 ; <%struct.S63*> [#uses=1]
77

88
declare void @test63(%struct.S63* byval(%struct.S63) align 4 ) nounwind
99

0 commit comments

Comments
 (0)