Bump version of __gcov_indirect_call_profiler function as there was ABI change.
2019-01-18 Martin Liska <mliska@suse.cz> * params.def: Fix comment. * tree-profile.c (gimple_init_gcov_profiler): Bump function name. (gimple_gen_ic_func_profiler): Likewise. 2019-01-18 Martin Liska <mliska@suse.cz> * gcc.dg/no_profile_instrument_function-attr-1.c: Update expected function name. 2019-01-18 Martin Liska <mliska@suse.cz> * libgcov-profiler.c (__gcov_indirect_call_profiler_v2): Rename to ... (__gcov_indirect_call_profiler_v3): ... this. * libgcov.h (__gcov_indirect_call_profiler_v2): Likewise. (__gcov_indirect_call_profiler_v3): Likewise. * Makefile.in: Bump function name. From-SVN: r268071
This commit is contained in:
parent
d273c40a55
commit
756721ba89
9 changed files with 30 additions and 9 deletions
|
@ -1,3 +1,10 @@
|
||||||
|
2019-01-18 Martin Liska <mliska@suse.cz>
|
||||||
|
|
||||||
|
* params.def: Fix comment.
|
||||||
|
* tree-profile.c (gimple_init_gcov_profiler): Bump function
|
||||||
|
name.
|
||||||
|
(gimple_gen_ic_func_profiler): Likewise.
|
||||||
|
|
||||||
2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
|
||||||
|
|
||||||
* config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
|
* config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
|
||||||
|
|
|
@ -995,7 +995,7 @@ DEFPARAM (PARAM_PROFILE_FUNC_INTERNAL_ID,
|
||||||
|
|
||||||
/* When the parameter is 1, track the most frequent N target
|
/* When the parameter is 1, track the most frequent N target
|
||||||
addresses in indirect-call profile. This disables
|
addresses in indirect-call profile. This disables
|
||||||
indirect_call_profiler_v2 which tracks single target. */
|
indirect_call_profiler_v3 which tracks single target. */
|
||||||
DEFPARAM (PARAM_INDIR_CALL_TOPN_PROFILE,
|
DEFPARAM (PARAM_INDIR_CALL_TOPN_PROFILE,
|
||||||
"indir-call-topn-profile",
|
"indir-call-topn-profile",
|
||||||
"Track top N target addresses in indirect-call profile.",
|
"Track top N target addresses in indirect-call profile.",
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
2019-01-18 Martin Liska <mliska@suse.cz>
|
||||||
|
|
||||||
|
* gcc.dg/no_profile_instrument_function-attr-1.c: Update
|
||||||
|
expected function name.
|
||||||
|
|
||||||
2019-01-18 Jakub Jelinek <jakub@redhat.com>
|
2019-01-18 Jakub Jelinek <jakub@redhat.com>
|
||||||
|
|
||||||
PR tree-optimization/86214
|
PR tree-optimization/86214
|
||||||
|
|
|
@ -19,6 +19,6 @@ int main ()
|
||||||
}
|
}
|
||||||
|
|
||||||
/* { dg-final { scan-tree-dump-times "__gcov0\\.main.* = PROF_edge_counter" 1 "optimized"} } */
|
/* { dg-final { scan-tree-dump-times "__gcov0\\.main.* = PROF_edge_counter" 1 "optimized"} } */
|
||||||
/* { dg-final { scan-tree-dump-times "__gcov_indirect_call_profiler_v2" 1 "optimized" } } */
|
/* { dg-final { scan-tree-dump-times "__gcov_indirect_call_profiler_v3" 1 "optimized" } } */
|
||||||
/* { dg-final { scan-tree-dump-times "__gcov_time_profiler_counter = " 1 "optimized" } } */
|
/* { dg-final { scan-tree-dump-times "__gcov_time_profiler_counter = " 1 "optimized" } } */
|
||||||
/* { dg-final { scan-tree-dump-times "__gcov_init" 1 "optimized" } } */
|
/* { dg-final { scan-tree-dump-times "__gcov_init" 1 "optimized" } } */
|
||||||
|
|
|
@ -186,7 +186,7 @@ gimple_init_gcov_profiler (void)
|
||||||
gcov_type_node,
|
gcov_type_node,
|
||||||
ptr_type_node,
|
ptr_type_node,
|
||||||
NULL_TREE);
|
NULL_TREE);
|
||||||
profiler_fn_name = "__gcov_indirect_call_profiler_v2";
|
profiler_fn_name = "__gcov_indirect_call_profiler_v3";
|
||||||
if (PARAM_VALUE (PARAM_INDIR_CALL_TOPN_PROFILE))
|
if (PARAM_VALUE (PARAM_INDIR_CALL_TOPN_PROFILE))
|
||||||
profiler_fn_name = "__gcov_indirect_call_topn_profiler";
|
profiler_fn_name = "__gcov_indirect_call_topn_profiler";
|
||||||
|
|
||||||
|
@ -459,9 +459,9 @@ gimple_gen_ic_func_profiler (void)
|
||||||
/* Insert code:
|
/* Insert code:
|
||||||
|
|
||||||
if (__gcov_indirect_call_callee != NULL)
|
if (__gcov_indirect_call_callee != NULL)
|
||||||
__gcov_indirect_call_profiler_v2 (profile_id, ¤t_function_decl);
|
__gcov_indirect_call_profiler_v3 (profile_id, ¤t_function_decl);
|
||||||
|
|
||||||
The function __gcov_indirect_call_profiler_v2 is responsible for
|
The function __gcov_indirect_call_profiler_v3 is responsible for
|
||||||
resetting __gcov_indirect_call_callee to NULL. */
|
resetting __gcov_indirect_call_callee to NULL. */
|
||||||
|
|
||||||
gimple_stmt_iterator gsi = gsi_start_bb (cond_bb);
|
gimple_stmt_iterator gsi = gsi_start_bb (cond_bb);
|
||||||
|
|
|
@ -1,3 +1,12 @@
|
||||||
|
2019-01-18 Martin Liska <mliska@suse.cz>
|
||||||
|
|
||||||
|
* libgcov-profiler.c (__gcov_indirect_call_profiler_v2): Rename
|
||||||
|
to ...
|
||||||
|
(__gcov_indirect_call_profiler_v3): ... this.
|
||||||
|
* libgcov.h (__gcov_indirect_call_profiler_v2): Likewise.
|
||||||
|
(__gcov_indirect_call_profiler_v3): Likewise.
|
||||||
|
* Makefile.in: Bump function name.
|
||||||
|
|
||||||
2019-01-18 Martin Liska <mliska@suse.cz>
|
2019-01-18 Martin Liska <mliska@suse.cz>
|
||||||
|
|
||||||
* libgcov-driver.c (GCOV_PROF_PREFIX): Define.
|
* libgcov-driver.c (GCOV_PROF_PREFIX): Define.
|
||||||
|
|
|
@ -899,7 +899,7 @@ LIBGCOV_PROFILER = _gcov_interval_profiler \
|
||||||
_gcov_average_profiler_atomic \
|
_gcov_average_profiler_atomic \
|
||||||
_gcov_ior_profiler \
|
_gcov_ior_profiler \
|
||||||
_gcov_ior_profiler_atomic \
|
_gcov_ior_profiler_atomic \
|
||||||
_gcov_indirect_call_profiler_v2 \
|
_gcov_indirect_call_profiler_v3 \
|
||||||
_gcov_time_profiler \
|
_gcov_time_profiler \
|
||||||
_gcov_indirect_call_topn_profiler
|
_gcov_indirect_call_topn_profiler
|
||||||
LIBGCOV_INTERFACE = _gcov_dump _gcov_flush _gcov_fork \
|
LIBGCOV_INTERFACE = _gcov_dump _gcov_flush _gcov_fork \
|
||||||
|
|
|
@ -296,7 +296,7 @@ __gcov_indirect_call_topn_profiler (gcov_type value, void* cur_func)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef L_gcov_indirect_call_profiler_v2
|
#ifdef L_gcov_indirect_call_profiler_v3
|
||||||
|
|
||||||
/* These two variables are used to actually track caller and callee. Keep
|
/* These two variables are used to actually track caller and callee. Keep
|
||||||
them in TLS memory so races are not common (they are written to often).
|
them in TLS memory so races are not common (they are written to often).
|
||||||
|
@ -318,7 +318,7 @@ struct indirect_call_tuple __gcov_indirect_call;
|
||||||
|
|
||||||
/* Tries to determine the most common value among its inputs. */
|
/* Tries to determine the most common value among its inputs. */
|
||||||
void
|
void
|
||||||
__gcov_indirect_call_profiler_v2 (gcov_type value, void* cur_func)
|
__gcov_indirect_call_profiler_v3 (gcov_type value, void* cur_func)
|
||||||
{
|
{
|
||||||
/* If the C++ virtual tables contain function descriptors then one
|
/* If the C++ virtual tables contain function descriptors then one
|
||||||
function may have multiple descriptors and we need to dereference
|
function may have multiple descriptors and we need to dereference
|
||||||
|
|
|
@ -278,7 +278,7 @@ extern void __gcov_pow2_profiler (gcov_type *, gcov_type);
|
||||||
extern void __gcov_pow2_profiler_atomic (gcov_type *, gcov_type);
|
extern void __gcov_pow2_profiler_atomic (gcov_type *, gcov_type);
|
||||||
extern void __gcov_one_value_profiler (gcov_type *, gcov_type);
|
extern void __gcov_one_value_profiler (gcov_type *, gcov_type);
|
||||||
extern void __gcov_one_value_profiler_atomic (gcov_type *, gcov_type);
|
extern void __gcov_one_value_profiler_atomic (gcov_type *, gcov_type);
|
||||||
extern void __gcov_indirect_call_profiler_v2 (gcov_type, void *);
|
extern void __gcov_indirect_call_profiler_v3 (gcov_type, void *);
|
||||||
extern void __gcov_time_profiler (gcov_type *);
|
extern void __gcov_time_profiler (gcov_type *);
|
||||||
extern void __gcov_time_profiler_atomic (gcov_type *);
|
extern void __gcov_time_profiler_atomic (gcov_type *);
|
||||||
extern void __gcov_average_profiler (gcov_type *, gcov_type);
|
extern void __gcov_average_profiler (gcov_type *, gcov_type);
|
||||||
|
|
Loading…
Add table
Reference in a new issue