diff options
author | Martin Liska <mliska@suse.cz> | 2021-01-13 11:17:03 +0100 |
---|---|---|
committer | Martin Liska <mliska@suse.cz> | 2021-03-03 14:21:45 +0100 |
commit | 00d79dc4be0b86ec564cfa2b32c47de6c07449e6 (patch) | |
tree | e8a0decbad8ba16951cd9f0861e09b67063d8f1c /libgcc/libgcov-driver.c | |
parent | 8cfa06570dd5eae2f074e1a1388004a60edfd01f (diff) | |
download | gcc-00d79dc4be0b86ec564cfa2b32c47de6c07449e6.zip gcc-00d79dc4be0b86ec564cfa2b32c47de6c07449e6.tar.gz gcc-00d79dc4be0b86ec564cfa2b32c47de6c07449e6.tar.bz2 |
gcov: use mmap pools for KVP.
gcc/ChangeLog:
PR gcov-profile/97461
* gcov-io.h (GCOV_PREALLOCATED_KVP): Remove.
libgcc/ChangeLog:
PR gcov-profile/97461
* config.in: Regenerate.
* configure: Likewise.
* configure.ac: Check sys/mman.h header file
* libgcov-driver.c (struct gcov_kvp): Remove static
pre-allocated pool and use a dynamic one.
* libgcov.h (MMAP_CHUNK_SIZE): New.
(gcov_counter_add): Use mmap to allocate pool for struct
gcov_kvp.
Diffstat (limited to 'libgcc/libgcov-driver.c')
-rw-r--r-- | libgcc/libgcov-driver.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/libgcc/libgcov-driver.c b/libgcc/libgcov-driver.c index e474e03..9146235 100644 --- a/libgcc/libgcov-driver.c +++ b/libgcc/libgcov-driver.c @@ -588,11 +588,14 @@ struct gcov_root __gcov_root; struct gcov_master __gcov_master = {GCOV_VERSION, 0}; -/* Pool of pre-allocated gcov_kvp strutures. */ -struct gcov_kvp __gcov_kvp_pool[GCOV_PREALLOCATED_KVP]; +/* Dynamic pool for gcov_kvp structures. */ +struct gcov_kvp *__gcov_kvp_dynamic_pool; -/* Index to first free gcov_kvp in the pool. */ -unsigned __gcov_kvp_pool_index; +/* Index into __gcov_kvp_dynamic_pool array. */ +unsigned __gcov_kvp_dynamic_pool_index; + +/* Size of _gcov_kvp_dynamic_pool array. */ +unsigned __gcov_kvp_dynamic_pool_size; void __gcov_exit (void) |