96 lines · plain
1; RUN: llvm-reduce --abort-on-invalid-reduction --delta-passes=inline-call-sites -reduce-callsite-inline-threshold=3 --test FileCheck --test-arg --check-prefix=CHECK --test-arg %s --test-arg --input-file %s -o %t2; RUN: FileCheck -check-prefixes=RESULT,CHECK %s < %t3 4declare void @extern_b()5declare void @extern_a()6 7; RESULT: @gv_init = global ptr @no_inline_noncall_user8@gv_init = global ptr @no_inline_noncall_user9 10 11; CHECK-LABEL: define void @no_inline_noncall_user(12define void @no_inline_noncall_user() {13 call void @extern_a()14 call void @extern_a()15 call void @extern_a()16 call void @extern_a()17 ret void18}19 20; RESULT-LABEL: define void @noncall_user_call() {21; RESULT-NEXT: call void @no_inline_noncall_user()22; RESULT-NEXT: ret void23define void @noncall_user_call() {24 call void @no_inline_noncall_user()25 ret void26}27 28; RESULT-LABEL: define void @big_callee_small_caller_callee() {29define void @big_callee_small_caller_callee() {30 call void @extern_a()31 call void @extern_a()32 call void @extern_a()33 call void @extern_a()34 ret void35}36 37; RESULT-LABEL: define void @big_callee_small_caller_caller() {38; RESULT-NEXT: call void @extern_b()39; RESULT-NEXT: call void @extern_a()40; RESULT-NEXT: call void @extern_a()41; RESULT-NEXT: call void @extern_a()42; RESULT-NEXT: call void @extern_a()43; RESULT-NEXT: ret void44define void @big_callee_small_caller_caller() {45 call void @extern_b()46 call void @big_callee_small_caller_callee()47 ret void48}49 50; RESULT-LABEL: define void @small_callee_big_caller_callee() {51; RESULT-NEXT: call void @extern_a()52; RESULT-NEXT: ret void53define void @small_callee_big_caller_callee() {54 call void @extern_a()55 ret void56}57 58; RESULT-LABEL: define void @small_callee_big_caller_caller() {59; RESULT-NEXT: call void @extern_b()60; RESULT-NEXT: call void @extern_a()61; RESULT-NEXT: call void @extern_b()62; RESULT-NEXT: call void @extern_b()63; RESULT-NEXT: ret void64define void @small_callee_big_caller_caller() {65 call void @extern_b()66 call void @small_callee_big_caller_callee()67 call void @extern_b()68 call void @extern_b()69 ret void70}71 72; RESULT-LABEL: define void @big_callee_big_caller_callee() {73define void @big_callee_big_caller_callee() {74 call void @extern_a()75 call void @extern_a()76 call void @extern_a()77 call void @extern_a()78 ret void79}80 81; RESULT-LABEL: define void @big_callee_big_caller_caller() {82; RESULT-NEXT: call void @extern_b()83; RESULT-NEXT: call void @big_callee_big_caller_callee()84; RESULT-NEXT: call void @extern_b()85; RESULT-NEXT: call void @extern_b()86; RESULT-NEXT: call void @extern_b()87; RESULT-NEXT: ret void88define void @big_callee_big_caller_caller() {89 call void @extern_b()90 call void @big_callee_big_caller_callee()91 call void @extern_b()92 call void @extern_b()93 call void @extern_b()94 ret void95}96