1; RUN: opt < %s -passes=inline -S | FileCheck %s 2; RUN: opt < %s -passes='cgscc(inline)' -S | FileCheck %s 3 4; Always prefer call site attribute over function attribute 5 6define internal i32 @inner1() { 7; CHECK: @inner1( 8 ret i32 1 9} 10 11define i32 @outer1() { 12; CHECK-LABEL: @outer1( 13; CHECK: call 14 15 %r = call i32 @inner1() noinline 16 ret i32 %r 17} 18 19define internal i32 @inner2() alwaysinline { 20; CHECK: @inner2( 21 ret i32 1 22} 23 24define i32 @outer2() { 25; CHECK-LABEL: @outer2( 26; CHECK: call 27 28 %r = call i32 @inner2() noinline 29 ret i32 %r 30} 31 32define i32 @inner3() alwaysinline { 33; CHECK: @inner3( 34 ret i32 1 35} 36 37define i32 @outer3() { 38; CHECK-LABEL: @outer3( 39; CHECK: call 40 41 %r = call i32 @inner3() noinline 42 ret i32 %r 43} 44 45define i32 @inner4() noinline { 46; CHECK: @inner4( 47 ret i32 1 48} 49 50define i32 @outer4() { 51; CHECK-LABEL: @outer4( 52; CHECK-NOT: call 53; CHECK: ret 54 55 %r = call i32 @inner4() alwaysinline 56 57 ret i32 %r 58} 59 60