1; RUN: llc -mtriple=x86_64-- -O0 < %s | FileCheck %s 2; RUN: llc -mtriple=x86_64-- -O1 < %s | FileCheck %s 3; RUN: llc -mtriple=x86_64-- -O2 < %s | FileCheck %s 4 5; The codegen should insert post-inlining instrumentation calls and should not 6; insert pre-inlining instrumentation. 7 8; CHECK-NOT: callq __cyg_profile_func_enter 9 10define void @leaf_function() #0 { 11; CHECK-LABEL: leaf_function: 12; CHECK: callq __cyg_profile_func_enter_bare 13; CHECK: callq __cyg_profile_func_exit 14 ret void 15} 16 17define void @root_function() #0 { 18entry: 19; CHECK-LABEL: root_function: 20; CHECK: callq __cyg_profile_func_enter_bare 21; CHECK-NEXT: callq leaf_function 22; CHECK: callq __cyg_profile_func_exit 23 call void @leaf_function() 24 ret void 25} 26 27attributes #0 = { "instrument-function-entry"="__cyg_profile_func_enter" "instrument-function-entry-inlined"="__cyg_profile_func_enter_bare" "instrument-function-exit-inlined"="__cyg_profile_func_exit" } 28