Skip to content

Commit db17fa1

Browse files
committed
Address review comment by adding the toc entry checks
1 parent fabe4d4 commit db17fa1

File tree

1 file changed

+113
-0
lines changed

1 file changed

+113
-0
lines changed

llvm/test/CodeGen/PowerPC/mergeable-string-pool-tls.ll

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -258,3 +258,116 @@ entry:
258258
tail call void @callee2(ptr noundef nonnull @e) #4
259259
ret void
260260
}
261+
262+
; Check the contents of the TLS data and the __ModuleStringPool structure to
263+
; check that TLS data has been skipped during string pool merging.
264+
265+
; CHECK64: .csect a[TL],2
266+
; CHECK64-NEXT: .lglobl a[TL]
267+
; CHECK64-NEXT: .string "tls1"
268+
; CHECK64: .csect b[TL],2
269+
; CHECK64-NEXT: .lglobl b[TL]
270+
; CHECK64-NEXT: .string "tls2"
271+
; CHECK64: .csect L..__ModuleStringPool[RO],2
272+
; CHECK64-NEXT: .align 2
273+
; CHECK64-NEXT: .vbyte 4, 0x42af999a
274+
; CHECK64-NEXT: .vbyte 4, 0x42b1999a
275+
; CHECK64-NEXT: .vbyte 4, 0x42b3cccd
276+
; CHECK64-NEXT: .vbyte 4, 0x42b5999a
277+
; CHECK64-NEXT: .vbyte 4, 1
278+
; CHECK64-NEXT: .vbyte 4, 2
279+
; CHECK64-NEXT: .vbyte 4, 3
280+
; CHECK64-NEXT: .vbyte 4, 4
281+
; CHECK64-NEXT: .vbyte 4, 5
282+
; CHECK64-NEXT: .vbyte 4, 6
283+
; CHECK64-NEXT: .vbyte 4, 7
284+
; CHECK64-NEXT: .vbyte 4, 8
285+
; CHECK64-NEXT: .vbyte 4, 9
286+
; CHECK64-NEXT: .vbyte 4, 10
287+
; CHECK64-NEXT: .string "Regular global"
288+
; CHECK64-NEXT: .byte 'T,'L,'S,' ,'v,'a,'r,'i,'a,'b,'l,'e,' ,'1,',,' ,'2,' ,'a,'n,'d,' ,'n,'o,'n,'-,'T,'L,'S,' ,'v,'a,'r,':,' ,'%,'s,',,' ,'%,'s,',,' ,'%,'s,0012,0000
289+
; CHECK64: L..C1:
290+
; CHECK64-NEXT: .tc L..__ModuleStringPool[TC],L..__ModuleStringPool[RO]
291+
; CHECK64: L..C2:
292+
; CHECK64-NEXT: .tc a[TC],a[TL]@ld
293+
; CHECK64: L..C3:
294+
; CHECK64-NEXT: .tc b[TC],b[TL]@ld
295+
296+
; CHECK32: .csect a[TL],2
297+
; CHECK32-NEXT: .lglobl a[TL]
298+
; CHECK32-NEXT: .string "tls1"
299+
; CHECK32: .csect b[TL],2
300+
; CHECK32-NEXT: .lglobl b[TL]
301+
; CHECK32-NEXT: .string "tls2"
302+
; CHECK32: .csect L..__ModuleStringPool[RO],2
303+
; CHECK32-NEXT: .align 2
304+
; CHECK32-NEXT: .vbyte 4, 0x42af999a
305+
; CHECK32-NEXT: .vbyte 4, 0x42b1999a
306+
; CHECK32-NEXT: .vbyte 4, 0x42b3cccd
307+
; CHECK32-NEXT: .vbyte 4, 0x42b5999a
308+
; CHECK32-NEXT: .vbyte 4, 1
309+
; CHECK32-NEXT: .vbyte 4, 2
310+
; CHECK32-NEXT: .vbyte 4, 3
311+
; CHECK32-NEXT: .vbyte 4, 4
312+
; CHECK32-NEXT: .vbyte 4, 5
313+
; CHECK32-NEXT: .vbyte 4, 6
314+
; CHECK32-NEXT: .vbyte 4, 7
315+
; CHECK32-NEXT: .vbyte 4, 8
316+
; CHECK32-NEXT: .vbyte 4, 9
317+
; CHECK32-NEXT: .vbyte 4, 10
318+
; CHECK32-NEXT: .string "Regular global"
319+
; CHECK32-NEXT: .byte 'T,'L,'S,' ,'v,'a,'r,'i,'a,'b,'l,'e,' ,'1,',,' ,'2,' ,'a,'n,'d,' ,'n,'o,'n,'-,'T,'L,'S,' ,'v,'a,'r,':,' ,'%,'s,',,' ,'%,'s,',,' ,'%,'s,0012,0000
320+
; CHECK32: L..C1:
321+
; CHECK32-NEXT: .tc L..__ModuleStringPool[TC],L..__ModuleStringPool[RO]
322+
; CHECK32: L..C2:
323+
; CHECK32-NEXT: .tc a[TC],a[TL]@ld
324+
; CHECK32: L..C3:
325+
; CHECK32-NEXT: .tc b[TC],b[TL]@ld
326+
327+
; LINUX64LE: a:
328+
; LINUX64LE-NEXT: .asciz "tls1"
329+
; LINUX64LE-NEXT: .size a, 5
330+
; LINUX64LE: b:
331+
; LINUX64LE-NEXT: .asciz "tls2"
332+
; LINUX64LE-NEXT: .size b, 5
333+
; LINUX64LE: .L__ModuleStringPool:
334+
; LINUX64LE-NEXT: .long 0x42af999a
335+
; LINUX64LE-NEXT: .long 0x42b1999a
336+
; LINUX64LE-NEXT: .long 0x42b3cccd
337+
; LINUX64LE-NEXT: .long 0x42b5999a
338+
; LINUX64LE-NEXT: .long 1
339+
; LINUX64LE-NEXT: .long 2
340+
; LINUX64LE-NEXT: .long 3
341+
; LINUX64LE-NEXT: .long 4
342+
; LINUX64LE-NEXT: .long 5
343+
; LINUX64LE-NEXT: .long 6
344+
; LINUX64LE-NEXT: .long 7
345+
; LINUX64LE-NEXT: .long 8
346+
; LINUX64LE-NEXT: .long 9
347+
; LINUX64LE-NEXT: .long 10
348+
; LINUX64LE-NEXT: .asciz "Regular global"
349+
; LINUX64LE-NEXT: .asciz "TLS variable 1, 2 and non-TLS var: %s, %s, %s\n"
350+
351+
; LINUX64BE: a:
352+
; LINUX64BE-NEXT: .asciz "tls1"
353+
; LINUX64BE-NEXT: .size a, 5
354+
; LINUX64BE: b:
355+
; LINUX64BE-NEXT: .asciz "tls2"
356+
; LINUX64BE-NEXT: .size b, 5
357+
; LINUX64BE: .L__ModuleStringPool:
358+
; LINUX64BE-NEXT: .long 0x42af999a
359+
; LINUX64BE-NEXT: .long 0x42b1999a
360+
; LINUX64BE-NEXT: .long 0x42b3cccd
361+
; LINUX64BE-NEXT: .long 0x42b5999a
362+
; LINUX64BE-NEXT: .long 1
363+
; LINUX64BE-NEXT: .long 2
364+
; LINUX64BE-NEXT: .long 3
365+
; LINUX64BE-NEXT: .long 4
366+
; LINUX64BE-NEXT: .long 5
367+
; LINUX64BE-NEXT: .long 6
368+
; LINUX64BE-NEXT: .long 7
369+
; LINUX64BE-NEXT: .long 8
370+
; LINUX64BE-NEXT: .long 9
371+
; LINUX64BE-NEXT: .long 10
372+
; LINUX64BE-NEXT: .asciz "Regular global"
373+
; LINUX64BE-NEXT: .asciz "TLS variable 1, 2 and non-TLS var: %s, %s, %s\n"

0 commit comments

Comments
 (0)