brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · d9fb98c Raw
72 lines · plain
1; RUN: llc < %s -mtriple=s390x-linux-gnu -stack-size-section | FileCheck %s2 3; CHECK-LABEL: func1:4; CHECK-NEXT: .Lfunc_begin0:5; CHECK: .section .stack_sizes,"o",@progbits,.text{{$}}6; CHECK-NEXT: .quad .Lfunc_begin07; CHECK-NEXT: .byte 08define void @func1(i32, i32) #0 {9  ret void10}11 12; CHECK-LABEL: func2:13; CHECK-NEXT: .Lfunc_begin1:14; CHECK: .section .stack_sizes,"o",@progbits,.text{{$}}15; CHECK-NEXT: .quad .Lfunc_begin116; CHECK-NEXT: .ascii  "\250\001"17define void @func2(i32, i32) #0 {18  alloca i32, align 419  alloca i32, align 420  ret void21}22 23; CHECK-LABEL: func3:24; CHECK-NEXT: .Lfunc_begin2:25; CHECK: .section .stack_sizes,"o",@progbits,.text{{$}}26; CHECK-NEXT: .quad .Lfunc_begin227; CHECK-NEXT: .ascii  "\250\001"28define void @func3() #0 {29  alloca i32, align 430  call void @func1(i32 1, i32 2)31  ret void32}33 34; CHECK-LABEL: dynalloc:35; CHECK-NOT: .section .stack_sizes36define void @dynalloc(i32 %N) #0 {37  alloca i32, i32 %N38  ret void39}40 41; Check that .stack_sizes section is linked to the function's section (.text),42; and not to the section containing the jump table (.rodata).43; CHECK-LABEL: .section .stack_sizes,"o",@progbits,.text{{$}}44; CHECK-NEXT: .quad .Lfunc_begin445; CHECK-NEXT: .ascii "\260!"46define i32 @linked_section(i32 %x) {47  %arr = alloca [1024 x i32]48  switch i32 %x, label %sw.epilog [49    i32 0, label %sw.bb050    i32 1, label %sw.bb151    i32 2, label %sw.bb252    i32 3, label %sw.bb353  ]54 55sw.bb0:56  ret i32 057 58sw.bb1:59  ret i32 160 61sw.bb2:62  ret i32 263 64sw.bb3:65  ret i32 366 67sw.epilog:68  ret i32 -169}70 71attributes #0 = { "frame-pointer"="all" }72