Remove __gcov_indirect_call_profiler
authorMartin Liska <mliska@suse.cz>
Tue, 9 Aug 2016 21:01:19 +0000 (23:01 +0200)
committerMartin Liska <marxin@gcc.gnu.org>
Tue, 9 Aug 2016 21:01:19 +0000 (21:01 +0000)
* 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
libgcc/Makefile.in
libgcc/libgcov-profiler.c
libgcc/libgcov.h

index 5b05a7c..aaff313 100644 (file)
@@ -1,5 +1,12 @@
 2016-08-09  Martin Liska  <mliska@suse.cz>
 
+       * 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  <mliska@suse.cz>
+
        * libgcov-profiler.c (__gcov_pow2_profiler): Consider 0 as not
        power of two.
 
index f09b39b..efaf7f7 100644 (file)
@@ -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
index 6da8a94..a99d93b 100644 (file)
@@ -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
index ae77998..80f13e2 100644 (file)
@@ -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);