mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-04-13 14:51:18 +08:00
Remove __gcov_flush.
PR gcov-profile/93623 * tree-cfg.c (stmt_can_terminate_bb_p): Update comment to reflect reality. PR gcov-profile/93623 * Makefile.in: Remove __gcov_flush. * gcov.h (__gcov_flush): Remove. * libgcov-interface.c (__gcov_flush): Remove. (init_mx): Use renamed mutex. (__gcov_lock): Likewise. (__gcov_unlock): Likewise. (__gcov_fork): Likewise. (__gcov_flush): Remove.
This commit is contained in:
parent
c0532db47d
commit
811b7636cb
@ -1,3 +1,9 @@
|
||||
2020-05-05 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR gcov-profile/93623
|
||||
* tree-cfg.c (stmt_can_terminate_bb_p): Update comment to reflect
|
||||
reality.
|
||||
|
||||
2020-05-05 Martin Liska <mliska@suse.cz>
|
||||
|
||||
* opt-functions.awk (opt_args_non_empty): New function.
|
||||
|
@ -8439,8 +8439,8 @@ stmt_can_terminate_bb_p (gimple *t)
|
||||
&& (call_flags & ECF_NOTHROW)
|
||||
&& !(call_flags & ECF_RETURNS_TWICE)
|
||||
/* fork() doesn't really return twice, but the effect of
|
||||
wrapping it in __gcov_fork() which calls __gcov_flush()
|
||||
and clears the counters before forking has the same
|
||||
wrapping it in __gcov_fork() which calls __gcov_dump() and
|
||||
__gcov_reset() and clears the counters before forking has the same
|
||||
effect as returning twice. Force a fake edge. */
|
||||
&& !fndecl_built_in_p (fndecl, BUILT_IN_FORK))
|
||||
return false;
|
||||
|
@ -1,3 +1,15 @@
|
||||
2020-05-05 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR gcov-profile/93623
|
||||
* Makefile.in: Remove __gcov_flush.
|
||||
* gcov.h (__gcov_flush): Remove.
|
||||
* libgcov-interface.c (__gcov_flush): Remove.
|
||||
(init_mx): Use renamed mutex.
|
||||
(__gcov_lock): Likewise.
|
||||
(__gcov_unlock): Likewise.
|
||||
(__gcov_fork): Likewise.
|
||||
(__gcov_flush): Remove.
|
||||
|
||||
2020-05-05 Martin Liska <mliska@suse.cz>
|
||||
|
||||
PR gcov-profile/93623
|
||||
|
@ -904,7 +904,7 @@ LIBGCOV_PROFILER = _gcov_interval_profiler \
|
||||
_gcov_ior_profiler_atomic \
|
||||
_gcov_indirect_call_profiler_v4 \
|
||||
_gcov_time_profiler
|
||||
LIBGCOV_INTERFACE = _gcov_dump _gcov_flush _gcov_fork \
|
||||
LIBGCOV_INTERFACE = _gcov_dump _gcov_fork \
|
||||
_gcov_execl _gcov_execlp \
|
||||
_gcov_execle _gcov_execv _gcov_execvp _gcov_execve _gcov_reset \
|
||||
_gcov_lock_unlock
|
||||
|
@ -33,9 +33,4 @@ extern void __gcov_reset (void);
|
||||
|
||||
extern void __gcov_dump (void);
|
||||
|
||||
/* Write profile information to a file and reset counters to zero.
|
||||
The function does operations under a mutex. */
|
||||
|
||||
extern void __gcov_flush (void);
|
||||
|
||||
#endif /* GCC_GCOV_H */
|
||||
|
@ -28,10 +28,6 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
|
||||
|
||||
#if defined(inhibit_libc)
|
||||
|
||||
#ifdef L_gcov_flush
|
||||
void __gcov_flush (void) {}
|
||||
#endif
|
||||
|
||||
#ifdef L_gcov_reset
|
||||
void __gcov_reset (void) {}
|
||||
#endif
|
||||
@ -42,19 +38,19 @@ void __gcov_dump (void) {}
|
||||
|
||||
#else
|
||||
|
||||
extern __gthread_mutex_t __gcov_flush_mx ATTRIBUTE_HIDDEN;
|
||||
extern __gthread_mutex_t __gcov_mx ATTRIBUTE_HIDDEN;
|
||||
|
||||
#ifdef L_gcov_lock_unlock
|
||||
#ifdef __GTHREAD_MUTEX_INIT
|
||||
__gthread_mutex_t __gcov_flush_mx = __GTHREAD_MUTEX_INIT;
|
||||
__gthread_mutex_t __gcov_mx = __GTHREAD_MUTEX_INIT;
|
||||
#define init_mx_once()
|
||||
#else
|
||||
__gthread_mutex_t __gcov_flush_mx;
|
||||
__gthread_mutex_t __gcov_mx;
|
||||
|
||||
static void
|
||||
init_mx (void)
|
||||
{
|
||||
__GTHREAD_MUTEX_INIT_FUNCTION (&__gcov_flush_mx);
|
||||
__GTHREAD_MUTEX_INIT_FUNCTION (&__gcov_mx);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -71,7 +67,7 @@ void
|
||||
__gcov_lock (void)
|
||||
{
|
||||
init_mx_once ();
|
||||
__gthread_mutex_lock (&__gcov_flush_mx);
|
||||
__gthread_mutex_lock (&__gcov_mx);
|
||||
}
|
||||
|
||||
/* Unlock critical section for __gcov_dump and __gcov_reset functions. */
|
||||
@ -79,28 +75,10 @@ __gcov_lock (void)
|
||||
void
|
||||
__gcov_unlock (void)
|
||||
{
|
||||
__gthread_mutex_unlock (&__gcov_flush_mx);
|
||||
__gthread_mutex_unlock (&__gcov_mx);
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef L_gcov_flush
|
||||
/* Called before fork or exec - write out profile information gathered so
|
||||
far and reset it to zero. This avoids duplication or loss of the
|
||||
profile information gathered so far. */
|
||||
|
||||
void
|
||||
__gcov_flush (void)
|
||||
{
|
||||
__gcov_lock ();
|
||||
|
||||
__gcov_dump_int ();
|
||||
__gcov_reset_int ();
|
||||
|
||||
__gcov_unlock ();
|
||||
}
|
||||
|
||||
#endif /* L_gcov_flush */
|
||||
|
||||
#ifdef L_gcov_reset
|
||||
|
||||
/* Reset all counters to zero. */
|
||||
@ -207,7 +185,7 @@ __gcov_fork (void)
|
||||
pid = fork ();
|
||||
if (pid == 0)
|
||||
{
|
||||
__GTHREAD_MUTEX_INIT_FUNCTION (&__gcov_flush_mx);
|
||||
__GTHREAD_MUTEX_INIT_FUNCTION (&__gcov_mx);
|
||||
/* We do not need locking as we are the only thread in the child. */
|
||||
__gcov_reset_int ();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user