aboutsummaryrefslogtreecommitdiff
path: root/libgcc/libgcov-profiler.c
diff options
context:
space:
mode:
authormarxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4>2017-06-09 12:54:53 +0000
committermarxin <marxin@138bc75d-0d04-0410-961f-82ee72b054a4>2017-06-09 12:54:53 +0000
commit696ee0c705c1adc91fe5bbb33965ec55df191ddc (patch)
treee9a69c8567c8e3789ca0f89d0560978b67d5d97b /libgcc/libgcov-profiler.c
parentdc11a00c390b61f607a7c662a5f5877c86883e4c (diff)
Speed-up indirect-call instrumentation
2017-06-09 Martin Liska <mliska@suse.cz> * tree-profile.c (gimple_gen_ic_profiler): Update comment. (gimple_gen_ic_func_profiler): Emit direct comparison of __gcov_indirect_call_callee with NULL. (gimple_gen_time_profiler): Change probability from PROB_VERY_UNLIKELY to PROB_UNLIKELY. 2017-06-09 Martin Liska <mliska@suse.cz> * libgcov-profiler.c (__gcov_indirect_call_profiler_v2): Reset __gcov_indirect_call_callee to NULL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@249058 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libgcc/libgcov-profiler.c')
-rw-r--r--libgcc/libgcov-profiler.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/libgcc/libgcov-profiler.c b/libgcc/libgcov-profiler.c
index 067d762c2af..e4570a01318 100644
--- a/libgcc/libgcov-profiler.c
+++ b/libgcc/libgcov-profiler.c
@@ -336,6 +336,8 @@ __gcov_indirect_call_profiler_v2 (gcov_type value, void* cur_func)
|| (__LIBGCC_VTABLE_USES_DESCRIPTORS__ && __gcov_indirect_call_callee
&& *(void **) cur_func == *(void **) __gcov_indirect_call_callee))
__gcov_one_value_profiler_body (__gcov_indirect_call_counters, value, 0);
+
+ __gcov_indirect_call_callee = NULL;
}
#endif