114 lines · plain
1; RUN: opt < %s -O2 -inlinedefault-threshold=100 -S | FileCheck %s2 3; Check that the inlinedefault-threshold does not alter the inline threshold4; for optsize or minsize functions5 6@a = global i32 47 8define i32 @inner() {9 call void @extern()10 %a1 = load volatile i32, ptr @a11 %x1 = add i32 %a1, %a112 ret i32 %x113}14 15define i32 @inner2() {16 call void @extern()17 %a1 = load volatile i32, ptr @a18 %x1 = add i32 %a1, %a119 %a2 = load volatile i32, ptr @a20 %x2 = add i32 %x1, %a221 %a3 = load volatile i32, ptr @a22 %x3 = add i32 %x2, %a323 %a4 = load volatile i32, ptr @a24 %x4 = add i32 %x3, %a425 %a5 = load volatile i32, ptr @a26 %x5 = add i32 %x3, %a527 %a6 = load volatile i32, ptr @a28 %x6 = add i32 %x5, %a629 %a7 = load volatile i32, ptr @a30 %x7 = add i32 %x6, %a731 %a8 = load volatile i32, ptr @a32 %x8 = add i32 %x7, %a833 ret i32 %x834}35 36define i32 @inner3() {37 call void @extern()38 %a1 = load volatile i32, ptr @a39 %x1 = add i32 %a1, %a140 %a2 = load volatile i32, ptr @a41 %x2 = add i32 %x1, %a242 %a3 = load volatile i32, ptr @a43 %x3 = add i32 %x2, %a344 %a4 = load volatile i32, ptr @a45 %x4 = add i32 %x3, %a446 %a5 = load volatile i32, ptr @a47 %x5 = add i32 %x4, %a548 %a6 = load volatile i32, ptr @a49 %x6 = add i32 %x5, %a650 %a7 = load volatile i32, ptr @a51 %x7 = add i32 %x6, %a752 %a8 = load volatile i32, ptr @a53 %x8 = add i32 %x7, %a854 %a9 = load volatile i32, ptr @a55 %x9 = add i32 %x8, %a956 %a10 = load volatile i32, ptr @a57 %x10 = add i32 %x9, %a1058 %a11 = load volatile i32, ptr @a59 %x11 = add i32 %x10, %a1160 %a12 = load volatile i32, ptr @a61 %x12 = add i32 %x11, %a1262 %a13 = load volatile i32, ptr @a63 %x13 = add i32 %x12, %a1364 %a14 = load volatile i32, ptr @a65 %x14 = add i32 %x13, %a1466 %a15 = load volatile i32, ptr @a67 %x15 = add i32 %x14, %a1568 ret i32 %x1569}70 71define i32 @outer() optsize {72; CHECK-LABEL: @outer73; CHECK-NOT: call i32 @inner()74 %r = call i32 @inner()75 ret i32 %r76}77 78define i32 @outer2() optsize {79; CHECK-LABEL: @outer280; CHECK: call i32 @inner2()81 %r = call i32 @inner2()82 ret i32 %r83}84 85define i32 @outer3() minsize {86; CHECK-LABEL: @outer387; CHECK: call i32 @inner()88 %r = call i32 @inner()89 ret i32 %r90}91 92define i32 @outer4() {93; CHECK-LABEL: @outer494; CHECK-NOT: call i32 @inner()95 %r = call i32 @inner()96 ret i32 %r97}98 99define i32 @outer5() {100; CHECK-LABEL: @outer5101; CHECK-NOT: call i32 @inner2()102 %r = call i32 @inner2()103 ret i32 %r104}105 106define i32 @outer6() {107; CHECK-LABEL: @outer6108; CHECK: call i32 @inner3()109 %r = call i32 @inner3()110 ret i32 %r111}112 113declare void @extern()114