1 ; RUN: opt -passes=synthetic-counts-propagation -S < %s | FileCheck %s 2 3 ; CHECK-LABEL: define void @foo() 4 ; CHECK: !prof ![[COUNT1:[0-9]+]] 5 define void @foo() { 6 ret void 7 } 8 9 ; CHECK-LABEL: define void @foo_inline() #0 10 ; CHECK: !prof ![[COUNT2:[0-9]+]] 11 define void @foo_inline() #0 { 12 ret void 13 } 14 15 ; CHECK-LABEL: define void @foo_always_inline() #1 16 ; CHECK: !prof ![[COUNT2]] 17 define void @foo_always_inline() #1 { 18 ret void 19 } 20 21 ; CHECK-LABEL: define void @foo_cold() #2 22 ; CHECK: !prof ![[COUNT3:[0-9]+]] 23 define void @foo_cold() #2 { 24 ret void 25 } 26 27 ; CHECK-LABEL: define void @foo_noinline() #3 28 ; CHECK: !prof ![[COUNT3]] 29 define void @foo_noinline() #3 { 30 ret void 31 } 32 33 ; CHECK-LABEL: define internal void @foo_local() 34 ; CHECK: !prof ![[COUNT4:[0-9]+]] 35 define internal void @foo_local() { 36 ret void 37 } 38 39 ; CHECK-LABEL: define internal void @foo_local_escaped() 40 ; CHECK: !prof ![[COUNT1]] 41 define internal void @foo_local_escaped() { 42 ret void 43 } 44 45 declare void @ext(void ()*) 46 47 define void @bar() { 48 call void @ext(void ()* nonnull @foo_local_escaped) 49 ret void 50 } 51 52 ; CHECK-LABEL: define internal void @foo_local_inline() #0 53 ; CHECK: !prof ![[COUNT2]] 54 define internal void @foo_local_inline() #0 { 55 ret void 56 } 57 58 ; CHECK-LABEL: define internal void @foo_local_cold() #2 59 ; CHECK: !prof ![[COUNT4]] 60 define internal void @foo_local_cold() #2 { 61 ret void 62 } 63 64 ; CHECK-LABEL: define linkonce void @foo_linkonce() 65 ; CHECK: !prof ![[COUNT1]] 66 define linkonce void @foo_linkonce() { 67 ret void 68 } 69 70 ; CHECK: ![[COUNT1]] = !{!"synthetic_function_entry_count", i64 10} 71 ; CHECK: ![[COUNT2]] = !{!"synthetic_function_entry_count", i64 15} 72 ; CHECK: ![[COUNT3]] = !{!"synthetic_function_entry_count", i64 5} 73 ; CHECK: ![[COUNT4]] = !{!"synthetic_function_entry_count", i64 0} 74 75 attributes #0 = {inlinehint} 76 attributes #1 = {alwaysinline} 77 attributes #2 = {cold} 78 attributes #3 = {noinline} 79 80