summaryrefslogtreecommitdiff
path: root/gcc/ggc-page.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2019-11-22 15:37:37 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2019-11-22 14:37:37 +0000
commit9fd052e775623581d2d277a1688b9fde94cb18d2 (patch)
tree7f4801c5d1bcb5f9fda27cdbfe254577322eeec0 /gcc/ggc-page.c
parentf2f3dbc67b85af0f1b6c6feb529a67baf011939c (diff)
Release memory-block-pool memory back to malloc.
* ggc-page.c (ggc_collect): Call memory_block_pool::trim. * memory-block.cc (memory_block_pool::clear_free_list): Rename to ... (memory_block_pool::reduce_free_list): ... this one. (memory_block_pool::trim): New static function. * memory-block.h (memory_block_pool::freelist_size): New constant (memory_block_pool::clear_free_list): Rename to ... (memory_block_pool::reduce_free_list): ... this one. (memory_block_pool::trim): Declare. * lto.c (lto_wpa_write_files): Call memory_block_pool::trim. From-SVN: r278616
Diffstat (limited to 'gcc/ggc-page.c')
-rw-r--r--gcc/ggc-page.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/ggc-page.c b/gcc/ggc-page.c
index dde39e680da..4a6a7c9598e 100644
--- a/gcc/ggc-page.c
+++ b/gcc/ggc-page.c
@@ -2186,6 +2186,9 @@ ggc_collect (void)
float allocated_last_gc =
MAX (G.allocated_last_gc, (size_t)param_ggc_min_heapsize * 1024);
+ /* It is also good time to get memory block pool into limits. */
+ memory_block_pool::trim ();
+
float min_expand = allocated_last_gc * param_ggc_min_expand / 100;
if (G.allocated < allocated_last_gc + min_expand && !ggc_force_collect)
return;