brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.6 KiB · 1a622bf Raw
128 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 --implicit-check-not=linkonce_odr_caller_of_foo_2 --implicit-check-not=linkonce_odr_caller_of_foo_1 %s3 4define void @caller_of_callers(ptr %p) {5  call void @linkonce_odr_caller_of_foo_1(ptr %p)6  call void @linkonce_odr_caller_of_foo_2(ptr %p)7  call void @linkonce_odr_caller_of_foo_3(ptr %p)8 9  call void @internal_caller_of_bar_1(ptr %p)10  call void @linkonce_odr_caller_of_bar_2(ptr %p)11  call void @linkonce_odr_caller_of_bar_3(ptr %p)12 13  call void @hidden_caller_of_zar_1(ptr %p)14  call void @linkonce_odr_caller_of_zar_2(ptr %p)15 16  ret void17}18 19define linkonce_odr hidden void @linkonce_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 linkonce_odr hidden void @linkonce_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 linkonce_odr hidden void @linkonce_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 linkonce_odr hidden void @linkonce_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 linkonce_odr hidden void @linkonce_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 linkonce_odr hidden void @linkonce_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 89; CHECK-LABEL: define void @caller_of_callers(90; CHECK-SAME: ptr [[P:%.*]]) {91; CHECK-NEXT:    call void @[[GLOB0:[0-9]+]](ptr [[P]])92; CHECK-NEXT:    call void @[[GLOB0]](ptr [[P]])93; CHECK-NEXT:    call void @[[GLOB0]](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 @internal_caller_of_bar_1(ptr [[P]])97; CHECK-NEXT:    call void @hidden_caller_of_zar_1(ptr [[P]])98; CHECK-NEXT:    call void @hidden_caller_of_zar_1(ptr [[P]])99; CHECK-NEXT:    ret void100;101;102; CHECK-LABEL: define private void @0(103; CHECK-SAME: ptr [[P:%.*]]) {104; CHECK-NEXT:  [[ENTRY:.*:]]105; CHECK-NEXT:    tail call void @foo(ptr [[P]])106; CHECK-NEXT:    tail call void @foo(ptr [[P]])107; CHECK-NEXT:    tail call void @foo(ptr [[P]])108; CHECK-NEXT:    ret void109;110;111; CHECK-LABEL: define internal void @internal_caller_of_bar_1(112; CHECK-SAME: ptr [[P:%.*]]) {113; CHECK-NEXT:  [[ENTRY:.*:]]114; CHECK-NEXT:    tail call void @bar(ptr [[P]])115; CHECK-NEXT:    tail call void @bar(ptr [[P]])116; CHECK-NEXT:    tail call void @bar(ptr [[P]])117; CHECK-NEXT:    ret void118;119;120; CHECK-LABEL: define hidden void @hidden_caller_of_zar_1(121; CHECK-SAME: ptr [[P:%.*]]) {122; CHECK-NEXT:  [[ENTRY:.*:]]123; CHECK-NEXT:    tail call void @zar(ptr [[P]])124; CHECK-NEXT:    tail call void @zar(ptr [[P]])125; CHECK-NEXT:    tail call void @zar(ptr [[P]])126; CHECK-NEXT:    ret void127;128