On 09/08/2021 15:58, Sebastian Huber wrote:
If -fprofile-update=atomic is used, then the target must provide atomic
operations for the counters of the type returned by get_gcov_type().
This is a 64-bit type for targets which have a 64-bit long long type.
On 32-bit targets this could be an issue since they may not provide
64-bit atomic operations.  Allow targets to override the default type
size with the new GCOV_TYPE_SIZE target macro.

gcc/

        * config/sparc/rtemself.h (GCOV_TYPE_SIZE): Define.
        * coverage.c (get_gcov_type): Use GCOV_TYPE_SIZE.
        * defaults.h (GCOV_TYPE_SIZE): Define default.
        * tree-profile.c (gimple_gen_edge_profiler): Use precision of
        gcov_type_node.
        (gimple_gen_time_profiler): Likewise.

The patch is incorrect. With this patch the compiler view of the gcov type doesn't match the libgcov view. I have to do some changes in libgcov.h in this area:

#if LONG_LONG_TYPE_SIZE > 32
typedef signed gcov_type __attribute__ ((mode (DI)));
typedef unsigned gcov_type_unsigned __attribute__ ((mode (DI)));
#else
typedef signed gcov_type __attribute__ ((mode (SI)));
typedef unsigned gcov_type_unsigned __attribute__ ((mode (SI)));
#endif

--
embedded brains GmbH
Herr Sebastian HUBER
Dornierstr. 4
82178 Puchheim
Germany
email: sebastian.hu...@embedded-brains.de
phone: +49-89-18 94 741 - 16
fax:   +49-89-18 94 741 - 08

Registergericht: Amtsgericht München
Registernummer: HRB 157899
Vertretungsberechtigte Geschäftsführer: Peter Rasmussen, Thomas Dörfler
Unsere Datenschutzerklärung finden Sie hier:
https://embedded-brains.de/datenschutzerklaerung/

Reply via email to