From 601f32936b3d8f16d853ece064e7f3c9de743016 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Mon, 1 Jun 2015 14:49:17 +0200 Subject: [PATCH] Change use to type-based pool allocator in ipa-prop.c. * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator. (ipa_edge_duplication_hook): Likewise. (ipa_free_all_structures_after_ipa_cp): Likewise. (ipa_free_all_structures_after_iinln): Likewise. From-SVN: r223969 --- gcc/ChangeLog | 7 +++++++ gcc/ipa-prop.c | 23 +++++++---------------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2291b0f7e11..e3e03ccb2df 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2015-06-01 Martin Liska + + * ipa-prop.c (ipa_set_jf_constant): Use new type-based pool allocator. + (ipa_edge_duplication_hook): Likewise. + (ipa_free_all_structures_after_ipa_cp): Likewise. + (ipa_free_all_structures_after_iinln): Likewise. + 2015-06-01 Martin Liska * ipa-profile.c (account_time_size): Use new type-based pool allocator. diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c index 26be5f26eba..80ce6b88e2b 100644 --- a/gcc/ipa-prop.c +++ b/gcc/ipa-prop.c @@ -176,7 +176,8 @@ struct ipa_cst_ref_desc /* Allocation pool for reference descriptions. */ -static alloc_pool ipa_refdesc_pool; +static pool_allocator ipa_refdesc_pool + ("IPA-PROP ref descriptions", 32); /* Return true if DECL_FUNCTION_SPECIFIC_OPTIMIZATION of the decl associated with NODE should prevent us from analyzing it for the purposes of IPA-CP. */ @@ -508,11 +509,8 @@ ipa_set_jf_constant (struct ipa_jump_func *jfunc, tree constant, && TREE_CODE (TREE_OPERAND (constant, 0)) == FUNCTION_DECL) { struct ipa_cst_ref_desc *rdesc; - if (!ipa_refdesc_pool) - ipa_refdesc_pool = create_alloc_pool ("IPA-PROP ref descriptions", - sizeof (struct ipa_cst_ref_desc), 32); - rdesc = (struct ipa_cst_ref_desc *) pool_alloc (ipa_refdesc_pool); + rdesc = ipa_refdesc_pool.allocate (); rdesc->cs = cs; rdesc->next_duplicate = NULL; rdesc->refcount = 1; @@ -3517,9 +3515,7 @@ ipa_edge_duplication_hook (struct cgraph_edge *src, struct cgraph_edge *dst, gcc_checking_assert (ref); dst->caller->clone_reference (ref, ref->stmt); - gcc_checking_assert (ipa_refdesc_pool); - struct ipa_cst_ref_desc *dst_rdesc - = (struct ipa_cst_ref_desc *) pool_alloc (ipa_refdesc_pool); + struct ipa_cst_ref_desc *dst_rdesc = ipa_refdesc_pool.allocate (); dst_rdesc->cs = dst; dst_rdesc->refcount = src_rdesc->refcount; dst_rdesc->next_duplicate = NULL; @@ -3527,10 +3523,7 @@ ipa_edge_duplication_hook (struct cgraph_edge *src, struct cgraph_edge *dst, } else if (src_rdesc->cs == src) { - struct ipa_cst_ref_desc *dst_rdesc; - gcc_checking_assert (ipa_refdesc_pool); - dst_rdesc - = (struct ipa_cst_ref_desc *) pool_alloc (ipa_refdesc_pool); + struct ipa_cst_ref_desc *dst_rdesc = ipa_refdesc_pool.allocate (); dst_rdesc->cs = dst; dst_rdesc->refcount = src_rdesc->refcount; dst_rdesc->next_duplicate = src_rdesc->next_duplicate; @@ -3681,8 +3674,7 @@ ipa_free_all_structures_after_ipa_cp (void) free_alloc_pool (ipcp_poly_ctx_values_pool); free_alloc_pool (ipcp_agg_lattice_pool); ipa_unregister_cgraph_hooks (); - if (ipa_refdesc_pool) - free_alloc_pool (ipa_refdesc_pool); + ipa_refdesc_pool.release (); } } @@ -3703,8 +3695,7 @@ ipa_free_all_structures_after_iinln (void) free_alloc_pool (ipcp_poly_ctx_values_pool); if (ipcp_agg_lattice_pool) free_alloc_pool (ipcp_agg_lattice_pool); - if (ipa_refdesc_pool) - free_alloc_pool (ipa_refdesc_pool); + ipa_refdesc_pool.release (); } /* Print ipa_tree_map data structures of all functions in the -- 2.30.2