Remove __gcov_flush.
authorMartin Liska <mliska@suse.cz>
Tue, 5 May 2020 14:15:47 +0000 (16:15 +0200)
committerMartin Liska <mliska@suse.cz>
Tue, 5 May 2020 14:15:47 +0000 (16:15 +0200)
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.

gcc/ChangeLog
gcc/tree-cfg.c
libgcc/ChangeLog
libgcc/Makefile.in
libgcc/gcov.h
libgcc/libgcov-interface.c

index 5f18676d4cd8510b6f0385e867ed309bbb182bef..6186c0765afed0da61855116bf92050857ee5372 100644 (file)
@@ -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.
index e99fb9ff5d12b368400f352c1cf0bbaa4e392ef9..b21ef0eee371f84e33f26be514c692ba78703503 100644 (file)
@@ -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;
index 6ef5eb9457cf8dd854c8a049dfc09e071220f258..cc6df8a9aa7c3aed1b008c180aca3aa921d3c1c2 100644 (file)
@@ -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
index e6ed153abbcd91b6db38b0792b533a09bb860c70..5c50f9fe4df6c35f3fa8d91080d8cc64e0c55c33 100644 (file)
@@ -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
index f1581914dde70f698d73e1cd3837e4086b890a7b..0e3eed3103288097b3baa2fcd1417993542cf17d 100644 (file)
@@ -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 */
index 855e8612018d1c9caf90396a3271337aaefdb9b3..3a8a5bf44b865c901e85018bc649065d9a899ee6 100644 (file)
@@ -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 ();
     }