diff options
author | Hans Wennborg <hans@hanshq.net> | 2017-11-21 17:30:34 +0000 |
---|---|---|
committer | Hans Wennborg <hans@hanshq.net> | 2017-11-21 17:30:34 +0000 |
commit | c0f88500bdb216836cae033024f43b0024812b55 (patch) | |
tree | 545a6ca5bb07abb45f7251e11245302caf6953e1 /test/CodeGen/instrument-functions.c | |
parent | f301ed91f8ffc6899d8e6dc0753e77b84a7092e6 (diff) | |
download | clang-c0f88500bdb216836cae033024f43b0024812b55.tar.gz |
Add -finstrument-function-entry-bare flag
This is an instrumentation flag that's similar to
-finstrument-functions, but it only inserts calls on function entry, the
calls are inserted post-inlining, and they don't take any arugments.
This is intended for users who want to instrument function entry with
minimal overhead.
(-pg would be another alternative, but forces frame pointer emission and
affects link flags, so is probably best left alone to be used for
generating gcov data.)
Differential revision: https://reviews.llvm.org/D40276
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@318785 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/instrument-functions.c')
-rw-r--r-- | test/CodeGen/instrument-functions.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/test/CodeGen/instrument-functions.c b/test/CodeGen/instrument-functions.c index b440e6a263..c075c3972d 100644 --- a/test/CodeGen/instrument-functions.c +++ b/test/CodeGen/instrument-functions.c @@ -1,8 +1,12 @@ // RUN: %clang_cc1 -S -debug-info-kind=standalone -emit-llvm -o - %s -finstrument-functions -disable-llvm-passes | FileCheck %s +// RUN: %clang_cc1 -S -debug-info-kind=standalone -emit-llvm -o - %s -finstrument-function-entry-bare -disable-llvm-passes | FileCheck -check-prefix=BARE %s int test1(int x) { // CHECK: @test1(i32 {{.*}}%x) #[[ATTR1:[0-9]+]] // CHECK: ret + +// BARE: @test1(i32 {{.*}}%x) #[[ATTR1:[0-9]+]] +// BARE: ret return x; } @@ -10,6 +14,9 @@ int test2(int) __attribute__((no_instrument_function)); int test2(int x) { // CHECK: @test2(i32 {{.*}}%x) #[[ATTR2:[0-9]+]] // CHECK: ret + +// BARE: @test2(i32 {{.*}}%x) #[[ATTR2:[0-9]+]] +// BARE: ret return x; } @@ -17,5 +24,11 @@ int test2(int x) { // CHECK-SAME: "instrument-function-entry"="__cyg_profile_func_enter" // CHECK-SAME: "instrument-function-exit"="__cyg_profile_func_exit" +// BARE: attributes #[[ATTR1]] = +// BARE-SAME: "instrument-function-entry-inlined"="__cyg_profile_func_enter_bare" + // CHECK: attributes #[[ATTR2]] = // CHECK-NOT: "instrument-function-entry" + +// BARE: attributes #[[ATTR2]] = +// BARE-NOT: "instrument-function-entry" |