Mercurial > hg > CbC > CbC_llvm
view llvm/test/Transforms/SyntheticCountsPropagation/initial.ll @ 252:1f2b6ac9f198 llvm-original
LLVM16-1
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 18 Aug 2023 09:04:13 +0900 |
parents | 1d019706d866 |
children |
line wrap: on
line source
; RUN: opt -passes=synthetic-counts-propagation -S < %s | FileCheck %s ; CHECK-LABEL: define void @foo() ; CHECK: !prof ![[COUNT1:[0-9]+]] define void @foo() { ret void } ; CHECK-LABEL: define void @foo_inline() #0 ; CHECK: !prof ![[COUNT2:[0-9]+]] define void @foo_inline() #0 { ret void } ; CHECK-LABEL: define void @foo_always_inline() #1 ; CHECK: !prof ![[COUNT2]] define void @foo_always_inline() #1 { ret void } ; CHECK-LABEL: define void @foo_cold() #2 ; CHECK: !prof ![[COUNT3:[0-9]+]] define void @foo_cold() #2 { ret void } ; CHECK-LABEL: define void @foo_noinline() #3 ; CHECK: !prof ![[COUNT3]] define void @foo_noinline() #3 { ret void } ; CHECK-LABEL: define internal void @foo_local() ; CHECK: !prof ![[COUNT4:[0-9]+]] define internal void @foo_local() { ret void } ; CHECK-LABEL: define internal void @foo_local_escaped() ; CHECK: !prof ![[COUNT1]] define internal void @foo_local_escaped() { ret void } declare void @ext(ptr) define void @bar() { call void @ext(ptr nonnull @foo_local_escaped) ret void } ; CHECK-LABEL: define internal void @foo_local_inline() #0 ; CHECK: !prof ![[COUNT2]] define internal void @foo_local_inline() #0 { ret void } ; CHECK-LABEL: define internal void @foo_local_cold() #2 ; CHECK: !prof ![[COUNT4]] define internal void @foo_local_cold() #2 { ret void } ; CHECK-LABEL: define linkonce void @foo_linkonce() ; CHECK: !prof ![[COUNT1]] define linkonce void @foo_linkonce() { ret void } ; CHECK: ![[COUNT1]] = !{!"synthetic_function_entry_count", i64 10} ; CHECK: ![[COUNT2]] = !{!"synthetic_function_entry_count", i64 15} ; CHECK: ![[COUNT3]] = !{!"synthetic_function_entry_count", i64 5} ; CHECK: ![[COUNT4]] = !{!"synthetic_function_entry_count", i64 0} attributes #0 = {inlinehint} attributes #1 = {alwaysinline} attributes #2 = {cold} attributes #3 = {noinline}