Lines Matching full:section
1 ; RUN: llc < %s -mtriple=x86_64 -unique-section-names=0 -data-sections 2>&1 \
7 ; CHECK: .section .asm_mergeable1,"aMS",@progbits,2
8 ; CHECK-NEXT: .section .asm_nonmergeable1,"a",@progbits
9 ; CHECK-NEXT: .section .asm_mergeable2,"aMS",@progbits,2
10 ; CHECK-NEXT: .section .asm_nonmergeable2,"a",@progbits
12 ;; Test implicit section assignment for symbols
13 ; CHECK: .section .data,"aw",@progbits,unique,1
16 ;; Create a uniquified symbol (as -unique-section-names=0) to test the uniqueID
20 ;; Test implicit section assignment for symbols to ensure that the symbols
22 ; CHECK: .section .rodata,"a",@progbits,unique,2
24 ; CHECK: .section .rodata.cst4,"aM",@progbits,4
26 ; CHECK: .section .rodata.cst8,"aM",@progbits,8
28 ; CHECK: .section .rodata.str4.4,"aMS",@progbits,4
39 ; CHECK: .section .explicit_basic,"aM",@progbits,4,unique,3
43 ;; Assign a mergeable global to a non-existing section.
44 @explicit_basic_1 = unnamed_addr constant [2 x i16] [i16 1, i16 1], section ".explicit_basic"
45 ;; Assign a compatible mergeable global to the previous section.
46 @explicit_basic_2 = unnamed_addr constant [2 x i16] [i16 1, i16 1], section ".explicit_basic"
48 ; CHECK: .section .explicit_basic,"aM",@progbits,8,unique,4
52 ;; Assign a symbol with an incompatible entsize (different size) to a section with the same name.
53 @explicit_basic_3 = unnamed_addr constant [2 x i32] [i32 1, i32 1], section ".explicit_basic"
54 ;; Assign a compatible mergeable global to the previous section.
55 @explicit_basic_4 = unnamed_addr constant [2 x i32] [i32 1, i32 1], section ".explicit_basic"
57 ; CHECK: .section .explicit_basic,"aMS",@progbits,4,unique,5
61 ;; Assign a symbol with an incompatible entsize (string vs non-string) to a section with the same n…
62 @explicit_basic_5 = unnamed_addr constant [2 x i32] [i32 1, i32 0], section ".explicit_basic"
63 ;; Assign a compatible mergeable global to the previous section.
64 @explicit_basic_6 = unnamed_addr constant [2 x i32] [i32 1, i32 0], section ".explicit_basic"
66 ; CHECK: .section .explicit_basic,"a",@progbits
69 ;; Assign a symbol with an incompatible entsize (non-mergeable) to a mergeable section created expl…
70 @explicit_basic_7 = constant [2 x i16] [i16 1, i16 1], section ".explicit_basic"
72 ; CHECK: .section .explicit_initially_nonmergeable,"a",@progbits
74 ; CHECK: .section .explicit_initially_nonmergeable,"aM",@progbits,4,unique,6
77 ;; Assign a mergeble symbol to a section that initially had a non-mergeable symbol explicitly assig…
78 @explicit_basic_8 = constant [2 x i16] [i16 1, i16 1], section ".explicit_initially_nonmergeable"
79 @explicit_basic_9 = unnamed_addr constant [2 x i16] [i16 1, i16 1], section ".explicit_initially_no…
81 ; CHECK: .section .explicit_initially_nonmergeable,"a",@progbits
83 ; CHECK: .section .explicit_initially_nonmergeable,"aM",@progbits,4,unique,6
87 @explicit_basic_10 = constant [2 x i16] [i16 1, i16 1], section ".explicit_initially_nonmergeable"
88 @explicit_basic_11 = unnamed_addr constant [2 x i16] [i16 1, i16 1], section ".explicit_initially_n…
92 ; CHECK: .section .rodata.cst16,"a",@progbits,unique,7
95 ;; Assign an incompatible (non-mergeable) symbol to a "default" mergeable section.
96 @explicit_default_1 = constant [2 x i64] [i64 1, i64 1], section ".rodata.cst16"
98 ; CHECK: .section .rodata.cst16,"aM",@progbits,16
101 ;; Assign a compatible global to a "default" mergeable section.
102 @explicit_default_2 = unnamed_addr constant [2 x i64] [i64 1, i64 1], section ".rodata.cst16"
104 ; CHECK: .section .debug_str,"MS",@progbits,1
108 @explicit_default_3 = unnamed_addr constant [2 x i8] [i8 1, i8 0], section ".debug_str"
110 ; CHECK: .section .debug_str,"a",@progbits,unique,8
114 @explicit_default_4 = constant [2 x i16] [i16 1, i16 1], section ".debug_str"
116 ;; Test implicit section assignment for globals with associated globals.
117 ; CHECK: .section .rodata.cst4,"aMo",@progbits,4,implicit_rodata_cst4,unique,9
119 ; CHECK: .section .rodata.cst8,"aMo",@progbits,8,implicit_rodata_cst4,unique,10
126 ;; to a section have been placed into distinct sections with the same name, but
128 ; CHECK: .section .explicit,"aMo",@progbits,4,implicit_rodata_cst4,unique,11
130 ; CHECK: .section .explicit,"aMo",@progbits,4,implicit_rodata_cst4,unique,12
132 ; CHECK: .section .explicit,"aMo",@progbits,8,implicit_rodata_cst4,unique,13
135 @explicit_assoc_1 = unnamed_addr constant [2 x i16] [i16 1, i16 1], section ".explicit", !associate…
136 @explicit_assoc_2 = unnamed_addr constant [2 x i16] [i16 1, i16 1], section ".explicit", !associate…
137 @explicit_assoc_3 = unnamed_addr constant [2 x i32] [i32 1, i32 1], section ".explicit", !associate…
141 ;; Test implicit section assignment for globals in distinct comdat groups.
142 ; CHECK: .section .rodata.cst4,"aGM",@progbits,4,f,comdat,unique,14
144 ; CHECK: .section .rodata.cst8,"aGM",@progbits,8,g,comdat,unique,15
148 ;; to a section have been placed into distinct sections with the same name, but
152 ;; for a mergeable section. However, as they have no effect it doesn't matter that they
154 ; CHECK: .section .explicit_comdat_distinct,"aM",@progbits,4,unique,16
156 ; CHECK: .section .explicit_comdat_distinct,"aGM",@progbits,4,f,comdat,unique,16
158 ; CHECK: .section .explicit_comdat_distinct,"aGM",@progbits,4,g,comdat,unique,16
160 ; CHECK: .section .explicit_comdat_distinct,"aGM",@progbits,8,h,comdat,unique,17
170 @explicit_comdat_distinct_supply_uid = unnamed_addr constant [2 x i16] [i16 1, i16 1], section ".ex…
171 @explicit_comdat_distinct1 = unnamed_addr constant [2 x i16] [i16 1, i16 1], section ".explicit_com…
172 @explicit_comdat_distinct2 = unnamed_addr constant [2 x i16] [i16 1, i16 1], section ".explicit_com…
173 @explicit_comdat_distinct3 = unnamed_addr constant [2 x i32] [i32 1, i32 1], section ".explicit_com…
175 ;; Test implicit section assignment for globals in the same comdat group.
176 ; CHECK: .section .rodata.cst4,"aGM",@progbits,4,i,comdat,unique,18
178 ; CHECK: .section .rodata.cst8,"aGM",@progbits,8,i,comdat,unique,19
182 ;; to a section have been placed into distinct sections with the same name, but
186 ;; for a mergeable section. However, as they have no effect it doesn't matter that they
188 ; CHECK: .section .explicit_comdat_same,"aM",@progbits,4,unique,20
190 ; CHECK: .section .explicit_comdat_same,"aGM",@progbits,4,i,comdat,unique,20
193 ; CHECK: .section .explicit_comdat_same,"aGM",@progbits,8,i,comdat,unique,21
201 @explicit_comdat_same_supply_uid = unnamed_addr constant [2 x i16] [i16 1, i16 1], section ".explic…
202 @explicit_comdat_same1 = unnamed_addr constant [2 x i16] [i16 1, i16 1], section ".explicit_comdat_…
203 @explicit_comdat_same2 = unnamed_addr constant [2 x i16] [i16 1, i16 1], section ".explicit_comdat_…
204 @explicit_comdat_same3 = unnamed_addr constant [2 x i32] [i32 1, i32 1], section ".explicit_comdat_…
207 ;; to a section and implicitly assigned symbols.
209 ; CHECK: .section .rodata.str1.1,"aMS",@progbits,1
213 ;; Assign a compatible global to an existing mergeable section created implicitly.
215 @explicit_implicit_1 = unnamed_addr constant [2 x i8] [i8 1, i8 0], section ".rodata.str1.1"
217 ; CHECK: .section .rodata.str1.1,"a",@progbits,unique,22
220 ;; Assign an incompatible symbol (non-mergeable) to an existing mergeable section created implicitl…
221 @explicit_implicit_2 = constant [2 x i16] [i16 1, i16 1], section ".rodata.str1.1"
223 ; CHECK: .section .rodata.str1.1,"aMS",@progbits,1
225 ; CHECK: .section .rodata.str1.1,"a",@progbits,unique,22
229 @explicit_implicit_3 = unnamed_addr constant [2 x i8] [i8 1, i8 0], section ".rodata.str1.1"
230 @explicit_implicit_4 = constant [2 x i16] [i16 1, i16 1], section ".rodata.str1.1"
232 ; CHECK: .section .rodata.str2.2,"aMS",@progbits,2
236 ;; Implicitly assign a compatible global to an existing mergeable section created explicitly.
237 @explicit_implicit_5 = unnamed_addr constant [2 x i16] [i16 1, i16 0], section ".rodata.str2.2"
242 ; CHECK: .section .asm_mergeable1,"aMS",@progbits,2
244 ; CHECK: .section .asm_nonmergeable1,"a",@progbits
246 ; CHECK: .section .asm_mergeable1,"aM",@progbits,4,unique,23
248 ; CHECK: .section .asm_nonmergeable1,"aMS",@progbits,2,unique,24
250 ; CHECK: .section .asm_mergeable2,"aM",@progbits,4,unique,25
252 ; CHECK: .section .asm_nonmergeable2,"aMS",@progbits,2,unique,26
254 ; CHECK: .section .asm_mergeable2,"aMS",@progbits,2
256 ; CHECK: .section .asm_nonmergeable2,"a",@progbits
259 module asm ".section .asm_mergeable1,\22aMS\22,@progbits,2"
260 module asm ".section .asm_nonmergeable1,\22a\22,@progbits"
261 module asm ".section .asm_mergeable2,\22aMS\22,@progbits,2"
262 module asm ".section .asm_nonmergeable2,\22a\22,@progbits"
265 @explicit_asm_1 = unnamed_addr constant [2 x i16] [i16 1, i16 0], section ".asm_mergeable1"
266 @explicit_asm_2 = constant [2 x i16] [i16 1, i16 0], section ".asm_nonmergeable1"
268 @explicit_asm_3 = unnamed_addr constant [2 x i16] [i16 1, i16 1], section ".asm_mergeable1"
269 @explicit_asm_4 = unnamed_addr constant [2 x i16] [i16 1, i16 0], section ".asm_nonmergeable1"
272 @explicit_asm_5 = unnamed_addr constant [2 x i16] [i16 1, i16 1], section ".asm_mergeable2"
273 @explicit_asm_6 = unnamed_addr constant [2 x i16] [i16 1, i16 0], section ".asm_nonmergeable2"
275 @explicit_asm_7 = unnamed_addr constant [2 x i16] [i16 1, i16 0], section ".asm_mergeable2"
276 @explicit_asm_8 = constant [2 x i16] [i16 1, i16 0], section ".asm_nonmergeable2"
278 ;; A .note.GNU-stack section is created implicitly. We add a check for this as we want to use
280 ; CHECK: .section ".note.GNU-stack","",@progbits
284 ;; Error if an incompatible symbol is explicitly placed into a mergeable section.
287 …section with entry-size=0 but was placed in section '.rodata.cst16' with entry-size=16: Explicit a…
288 …section with entry-size=0 but was placed in section '.debug_str' with entry-size=1: Explicit assig…
289 …section with entry-size=0 but was placed in section '.rodata.str1.1' with entry-size=1: Explicit a…
290 …section with entry-size=0 but was placed in section '.rodata.str1.1' with entry-size=1: Explicit a…
292 ;; Don't create mergeable sections for globals with an explicit section name.
293 ; RUN: echo '@explicit = unnamed_addr constant [2 x i16] [i16 1, i16 1], section ".explicit"' > %t.…
296 ; NO-I-AS: .section .explicit,"a",@progbits