From 6dce6418c50b26cb8eaa353366c70b96887bd010 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Tue, 9 Aug 2016 23:01:19 +0200 Subject: [PATCH] Remove __gcov_indirect_call_profiler * Makefile.in: Remove __gcov_indirect_call_profiler. * libgcov-profiler.c (__gcov_indirect_call_profiler): Remove function. * libgcov.h: And the declaration of the function. From-SVN: r239306 --- libgcc/ChangeLog | 7 +++++++ libgcc/Makefile.in | 2 +- libgcc/libgcov-profiler.c | 27 --------------------------- libgcc/libgcov.h | 2 -- 4 files changed, 8 insertions(+), 30 deletions(-) diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog index 5b05a7c..aaff313 100644 --- a/libgcc/ChangeLog +++ b/libgcc/ChangeLog @@ -1,5 +1,12 @@ 2016-08-09 Martin Liska + * Makefile.in: Remove __gcov_indirect_call_profiler. + * libgcov-profiler.c (__gcov_indirect_call_profiler): Remove + function. + * libgcov.h: And the declaration of the function. + +2016-08-09 Martin Liska + * libgcov-profiler.c (__gcov_pow2_profiler): Consider 0 as not power of two. diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in index f09b39b..efaf7f7 100644 --- a/libgcc/Makefile.in +++ b/libgcc/Makefile.in @@ -859,7 +859,7 @@ include $(iterator) LIBGCOV_MERGE = _gcov_merge_add _gcov_merge_single _gcov_merge_delta \ _gcov_merge_ior _gcov_merge_time_profile _gcov_merge_icall_topn LIBGCOV_PROFILER = _gcov_interval_profiler _gcov_pow2_profiler \ - _gcov_one_value_profiler _gcov_indirect_call_profiler \ + _gcov_one_value_profiler \ _gcov_average_profiler _gcov_ior_profiler \ _gcov_indirect_call_profiler_v2 _gcov_time_profiler \ _gcov_indirect_call_topn_profiler diff --git a/libgcc/libgcov-profiler.c b/libgcc/libgcov-profiler.c index 6da8a94..a99d93b 100644 --- a/libgcc/libgcov-profiler.c +++ b/libgcc/libgcov-profiler.c @@ -231,33 +231,6 @@ __gcov_indirect_call_topn_profiler (gcov_type value, void* cur_func) } #endif -#ifdef L_gcov_indirect_call_profiler -/* This function exist only for workaround of binutils bug 14342. - Once this compatibility hack is obsolette, it can be removed. */ - -/* By default, the C++ compiler will use function addresses in the - vtable entries. Setting TARGET_VTABLE_USES_DESCRIPTORS to nonzero - tells the compiler to use function descriptors instead. The value - of this macro says how many words wide the descriptor is (normally 2). - - It is assumed that the address of a function descriptor may be treated - as a pointer to a function. */ - -/* Tries to determine the most common value among its inputs. */ -void -__gcov_indirect_call_profiler (gcov_type* counter, gcov_type value, - void* cur_func, void* callee_func) -{ - /* If the C++ virtual tables contain function descriptors then one - function may have multiple descriptors and we need to dereference - the descriptors to see if they point to the same function. */ - if (cur_func == callee_func - || (__LIBGCC_VTABLE_USES_DESCRIPTORS__ && callee_func - && *(void **) cur_func == *(void **) callee_func)) - __gcov_one_value_profiler_body (counter, value); -} -#endif - #ifdef L_gcov_indirect_call_profiler_v2 /* These two variables are used to actually track caller and callee. Keep diff --git a/libgcc/libgcov.h b/libgcc/libgcov.h index ae77998..80f13e2 100644 --- a/libgcc/libgcov.h +++ b/libgcc/libgcov.h @@ -270,8 +270,6 @@ extern void __gcov_merge_icall_topn (gcov_type *, unsigned) ATTRIBUTE_HIDDEN; extern void __gcov_interval_profiler (gcov_type *, gcov_type, int, unsigned); extern void __gcov_pow2_profiler (gcov_type *, gcov_type); extern void __gcov_one_value_profiler (gcov_type *, gcov_type); -extern void __gcov_indirect_call_profiler (gcov_type*, gcov_type, - void*, void*); extern void __gcov_indirect_call_profiler_v2 (gcov_type, void *); extern void __gcov_time_profiler (gcov_type *); extern void __gcov_average_profiler (gcov_type *, gcov_type); -- 2.7.4