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 | 14e8a5a32d8f34b5154f24072fb7a8803ea52ae3 (patch) | |
tree | c666d8392421acf372a32515befa73481d57c6d9 /clang/test | |
parent | d97c0f785576b78aa8c5771841a505f4aef79ad9 (diff) | |
download | bcm5719-llvm-14e8a5a32d8f34b5154f24072fb7a8803ea52ae3.tar.gz bcm5719-llvm-14e8a5a32d8f34b5154f24072fb7a8803ea52ae3.zip |
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
llvm-svn: 318785
Diffstat (limited to 'clang/test')
-rw-r--r-- | clang/test/CodeGen/instrument-functions.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/clang/test/CodeGen/instrument-functions.c b/clang/test/CodeGen/instrument-functions.c index b440e6a2635..c075c3972dd 100644 --- a/clang/test/CodeGen/instrument-functions.c +++ b/clang/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" |