60 lines · plain
1; RUN: opt < %s -passes=inline -S | FileCheck %s2; RUN: opt < %s -passes='cgscc(inline)' -S | FileCheck %s3 4; Always prefer call site attribute over function attribute5 6define internal i32 @inner1() {7; CHECK: @inner1(8 ret i32 19}10 11define i32 @outer1() {12; CHECK-LABEL: @outer1(13; CHECK: call14 15 %r = call i32 @inner1() noinline16 ret i32 %r17}18 19define internal i32 @inner2() alwaysinline {20; CHECK: @inner2(21 ret i32 122}23 24define i32 @outer2() {25; CHECK-LABEL: @outer2(26; CHECK: call27 28 %r = call i32 @inner2() noinline29 ret i32 %r30}31 32define i32 @inner3() alwaysinline {33; CHECK: @inner3(34 ret i32 135}36 37define i32 @outer3() {38; CHECK-LABEL: @outer3(39; CHECK: call40 41 %r = call i32 @inner3() noinline42 ret i32 %r43}44 45define i32 @inner4() noinline {46; CHECK: @inner4(47 ret i32 148}49 50define i32 @outer4() {51; CHECK-LABEL: @outer4(52; CHECK-NOT: call53; CHECK: ret54 55 %r = call i32 @inner4() alwaysinline56 57 ret i32 %r58}59 60