mirror of
https://github.com/opnsense/src.git
synced 2026-06-03 13:58:30 -04:00
46 lines
1 KiB
LLVM
46 lines
1 KiB
LLVM
; RUN: opt -ee-instrument < %s | opt -inline | llc | FileCheck %s
|
|
|
|
; The run-line mimics how Clang might run the instrumentation passes.
|
|
|
|
target datalayout = "E-m:e-i64:64-n32:64"
|
|
target triple = "powerpc64-bgq-linux"
|
|
|
|
|
|
define void @leaf_function() #0 {
|
|
entry:
|
|
ret void
|
|
|
|
; CHECK-LABEL: leaf_function:
|
|
; CHECK: bl mcount
|
|
; CHECK-NOT: bl
|
|
; CHECK: bl __cyg_profile_func_enter
|
|
; CHECK-NOT: bl
|
|
; CHECK: bl __cyg_profile_func_exit
|
|
; CHECK-NOT: bl
|
|
; CHECK: blr
|
|
}
|
|
|
|
|
|
define void @root_function() #0 {
|
|
entry:
|
|
call void @leaf_function()
|
|
ret void
|
|
|
|
; CHECK-LABEL: root_function:
|
|
; CHECK: bl mcount
|
|
; CHECK-NOT: bl
|
|
; CHECK: bl __cyg_profile_func_enter
|
|
; CHECK-NOT: bl
|
|
|
|
; Entry and exit calls, inlined from @leaf_function()
|
|
; CHECK: bl __cyg_profile_func_enter
|
|
; CHECK-NOT: bl
|
|
; CHECK: bl __cyg_profile_func_exit
|
|
; CHECK-NOT: bl
|
|
|
|
; CHECK: bl __cyg_profile_func_exit
|
|
; CHECK-NOT: bl
|
|
; CHECK: blr
|
|
}
|
|
|
|
attributes #0 = { "instrument-function-entry-inlined"="mcount" "instrument-function-entry"="__cyg_profile_func_enter" "instrument-function-exit"="__cyg_profile_func_exit" }
|