64 lines · plain
1; RUN: llc -mtriple=aarch64 -aarch64-min-jump-table-entries=4 -stack-size-section %s -o - | FileCheck %s2 3; CHECK-LABEL: .section .stack_sizes,"o",@progbits,.text{{$}}4; CHECK-NEXT: .xword .Lfunc_begin05; CHECK-NEXT: .byte 06define void @empty() {7 ret void8}9 10; CHECK-LABEL: .section .stack_sizes,"o",@progbits,.text{{$}}11; CHECK-NEXT: .xword .Lfunc_begin112; CHECK-NEXT: .ascii "\200\001"13define void @non_empty() #0 {14 alloca [32 x i32]15 ret void16}17 18; CHECK-LABEL: dynalloc:19; CHECK-NOT: .section .stack_sizes20define void @dynalloc(i32 %n) #0 {21 alloca i32, i32 %n22 ret void23}24 25; Check that .stack_sizes section is linked to the function's section (.text),26; and not to the section containing the jump table (.rodata).27; CHECK-LABEL: linked_section:28; CHECK: .section .rodata,"a",@progbits29; CHECK: .section .stack_sizes,"o",@progbits,.text30; CHECK-NEXT: .xword .Lfunc_begin331; CHECK-NEXT: .ascii "\220\001"32declare void @case0()33declare void @case1()34declare void @case2()35declare void @case3()36define void @linked_section(i32 %x) {37 %arr = alloca [32 x i32]38 switch i32 %x, label %sw.epilog [39 i32 0, label %sw.bb040 i32 1, label %sw.bb141 i32 2, label %sw.bb242 i32 3, label %sw.bb343 ]44 45sw.bb0:46 call void @case0()47 ret void48 49sw.bb1:50 call void @case1()51 ret void52 53sw.bb2:54 call void @case2()55 ret void56 57sw.bb3:58 call void @case3()59 ret void60 61sw.epilog:62 ret void63}64