brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.6 KiB · 01acad0 Raw
163 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --check-globals all --include-generated-funcs --version 52; RUN: opt -p mergefunc -S %s | FileCheck %s3 4define void @caller_of_callers(ptr %p) {5  call void @weak_odr_caller_of_foo_1(ptr %p)6  call void @weak_odr_caller_of_foo_2(ptr %p)7  call void @weak_odr_caller_of_foo_3(ptr %p)8 9  call void @internal_caller_of_bar_1(ptr %p)10  call void @weak_odr_caller_of_bar_2(ptr %p)11  call void @weak_odr_caller_of_bar_3(ptr %p)12 13  call void @hidden_caller_of_zar_1(ptr %p)14  call void @weak_odr_caller_of_zar_2(ptr %p)15 16  ret void17}18 19define weak_odr hidden void @weak_odr_caller_of_foo_1(ptr %p) {20entry:21  tail call void @foo(ptr %p)22  tail call void @foo(ptr %p)23  tail call void @foo(ptr %p)24  ret void25}26 27define weak_odr hidden void @weak_odr_caller_of_foo_2(ptr %p) {28entry:29  tail call void @foo(ptr %p)30  tail call void @foo(ptr %p)31  tail call void @foo(ptr %p)32  ret void33}34 35define weak_odr hidden void @weak_odr_caller_of_foo_3(ptr %p) {36entry:37  tail call void @foo(ptr %p)38  tail call void @foo(ptr %p)39  tail call void @foo(ptr %p)40  ret void41}42 43declare void @foo(ptr)44 45define internal void @internal_caller_of_bar_1(ptr %p) {46entry:47  tail call void @bar(ptr %p)48  tail call void @bar(ptr %p)49  tail call void @bar(ptr %p)50  ret void51}52 53define weak_odr hidden void @weak_odr_caller_of_bar_2(ptr %p) {54entry:55  tail call void @bar(ptr %p)56  tail call void @bar(ptr %p)57  tail call void @bar(ptr %p)58  ret void59}60 61define weak_odr hidden void @weak_odr_caller_of_bar_3(ptr %p) {62entry:63  tail call void @bar(ptr %p)64  tail call void @bar(ptr %p)65  tail call void @bar(ptr %p)66  ret void67}68 69declare void @bar(ptr)70 71define hidden void @hidden_caller_of_zar_1(ptr %p) {72entry:73  tail call void @zar(ptr %p)74  tail call void @zar(ptr %p)75  tail call void @zar(ptr %p)76  ret void77}78 79define weak_odr hidden void @weak_odr_caller_of_zar_2(ptr %p) {80entry:81  tail call void @zar(ptr %p)82  tail call void @zar(ptr %p)83  tail call void @zar(ptr %p)84  ret void85}86 87declare void @zar(ptr)88; CHECK-LABEL: define void @caller_of_callers(89; CHECK-SAME: ptr [[P:%.*]]) {90; CHECK-NEXT:    call void @[[GLOB0:[0-9]+]](ptr [[P]])91; CHECK-NEXT:    call void @[[GLOB0]](ptr [[P]])92; CHECK-NEXT:    call void @[[GLOB0]](ptr [[P]])93; CHECK-NEXT:    call void @internal_caller_of_bar_1(ptr [[P]])94; CHECK-NEXT:    call void @internal_caller_of_bar_1(ptr [[P]])95; CHECK-NEXT:    call void @internal_caller_of_bar_1(ptr [[P]])96; CHECK-NEXT:    call void @hidden_caller_of_zar_1(ptr [[P]])97; CHECK-NEXT:    call void @hidden_caller_of_zar_1(ptr [[P]])98; CHECK-NEXT:    ret void99;100;101; CHECK-LABEL: define private void @0(102; CHECK-SAME: ptr [[P:%.*]]) {103; CHECK-NEXT:  [[ENTRY:.*:]]104; CHECK-NEXT:    tail call void @foo(ptr [[P]])105; CHECK-NEXT:    tail call void @foo(ptr [[P]])106; CHECK-NEXT:    tail call void @foo(ptr [[P]])107; CHECK-NEXT:    ret void108;109;110; CHECK-LABEL: define internal void @internal_caller_of_bar_1(111; CHECK-SAME: ptr [[P:%.*]]) {112; CHECK-NEXT:  [[ENTRY:.*:]]113; CHECK-NEXT:    tail call void @bar(ptr [[P]])114; CHECK-NEXT:    tail call void @bar(ptr [[P]])115; CHECK-NEXT:    tail call void @bar(ptr [[P]])116; CHECK-NEXT:    ret void117;118;119; CHECK-LABEL: define hidden void @hidden_caller_of_zar_1(120; CHECK-SAME: ptr [[P:%.*]]) {121; CHECK-NEXT:  [[ENTRY:.*:]]122; CHECK-NEXT:    tail call void @zar(ptr [[P]])123; CHECK-NEXT:    tail call void @zar(ptr [[P]])124; CHECK-NEXT:    tail call void @zar(ptr [[P]])125; CHECK-NEXT:    ret void126;127;128; CHECK-LABEL: define weak_odr hidden void @weak_odr_caller_of_foo_2(129; CHECK-SAME: ptr [[TMP0:%.*]]) {130; CHECK-NEXT:    tail call void @[[GLOB0]](ptr [[TMP0]])131; CHECK-NEXT:    ret void132;133;134; CHECK-LABEL: define weak_odr hidden void @weak_odr_caller_of_foo_1(135; CHECK-SAME: ptr [[TMP0:%.*]]) {136; CHECK-NEXT:    tail call void @[[GLOB0]](ptr [[TMP0]])137; CHECK-NEXT:    ret void138;139;140; CHECK-LABEL: define weak_odr hidden void @weak_odr_caller_of_foo_3(141; CHECK-SAME: ptr [[TMP0:%.*]]) {142; CHECK-NEXT:    tail call void @[[GLOB0]](ptr [[TMP0]])143; CHECK-NEXT:    ret void144;145;146; CHECK-LABEL: define weak_odr hidden void @weak_odr_caller_of_bar_2(147; CHECK-SAME: ptr [[TMP0:%.*]]) {148; CHECK-NEXT:    tail call void @internal_caller_of_bar_1(ptr [[TMP0]])149; CHECK-NEXT:    ret void150;151;152; CHECK-LABEL: define weak_odr hidden void @weak_odr_caller_of_bar_3(153; CHECK-SAME: ptr [[TMP0:%.*]]) {154; CHECK-NEXT:    tail call void @internal_caller_of_bar_1(ptr [[TMP0]])155; CHECK-NEXT:    ret void156;157;158; CHECK-LABEL: define weak_odr hidden void @weak_odr_caller_of_zar_2(159; CHECK-SAME: ptr [[TMP0:%.*]]) {160; CHECK-NEXT:    tail call void @hidden_caller_of_zar_1(ptr [[TMP0]])161; CHECK-NEXT:    ret void162;163