diff options
author | Jan Hubicka <jh@suse.cz> | 2019-11-21 15:58:08 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2019-11-21 14:58:08 +0000 |
commit | b0d5547612f08d7112d9284a7b5a862df3373570 (patch) | |
tree | b47107257744ee912baa2c52e72eef798328f1f5 /gcc/ipa-inline-analysis.c | |
parent | 48ffab987ae013a642398ef4fe5ffdce71571ba5 (diff) | |
download | gcc-b0d5547612f08d7112d9284a7b5a862df3373570.zip gcc-b0d5547612f08d7112d9284a7b5a862df3373570.tar.gz gcc-b0d5547612f08d7112d9284a7b5a862df3373570.tar.bz2 |
ipa-fnsummary.c (evaluate_conditions_for_known_args): Be ready for some vectors to not be allocated.
* ipa-fnsummary.c (evaluate_conditions_for_known_args): Be
ready for some vectors to not be allocated.
(evaluate_properties_for_edge): Document better; make
known_vals and known_aggs caller allocated; avoid determining
values of parameters which are not used.
(ipa_merge_fn_summary_after_inlining): Pre allocate known_vals and
known_aggs.
* ipa-inline-analysis.c (do_estimate_edge_time): Likewise.
(do_estimate_edge_size): Likewise.
(do_estimate_edge_hints): Likewise.
* ipa-cp.c (ipa_get_indirect_edge_target_1): Do not early exit when
values are not known.
(ipa_release_agg_values): Add option to not release vector itself.
From-SVN: r278553
Diffstat (limited to 'gcc/ipa-inline-analysis.c')
-rw-r--r-- | gcc/ipa-inline-analysis.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c index b5a55a7..e369020 100644 --- a/gcc/ipa-inline-analysis.c +++ b/gcc/ipa-inline-analysis.c @@ -186,9 +186,9 @@ do_estimate_edge_time (struct cgraph_edge *edge, sreal *ret_nonspec_time) ipa_hints hints; struct cgraph_node *callee; clause_t clause, nonspec_clause; - vec<tree> known_vals; - vec<ipa_polymorphic_call_context> known_contexts; - vec<ipa_agg_value_set> known_aggs; + auto_vec<tree, 32> known_vals; + auto_vec<ipa_polymorphic_call_context, 32> known_contexts; + auto_vec<ipa_agg_value_set, 32> known_aggs; class ipa_call_summary *es = ipa_call_summaries->get (edge); int min_size = -1; @@ -308,9 +308,9 @@ do_estimate_edge_size (struct cgraph_edge *edge) int size; struct cgraph_node *callee; clause_t clause, nonspec_clause; - vec<tree> known_vals; - vec<ipa_polymorphic_call_context> known_contexts; - vec<ipa_agg_value_set> known_aggs; + auto_vec<tree, 32> known_vals; + auto_vec<ipa_polymorphic_call_context, 32> known_contexts; + auto_vec<ipa_agg_value_set, 32> known_aggs; /* When we do caching, use do_estimate_edge_time to populate the entry. */ @@ -347,9 +347,9 @@ do_estimate_edge_hints (struct cgraph_edge *edge) ipa_hints hints; struct cgraph_node *callee; clause_t clause, nonspec_clause; - vec<tree> known_vals; - vec<ipa_polymorphic_call_context> known_contexts; - vec<ipa_agg_value_set> known_aggs; + auto_vec<tree, 32> known_vals; + auto_vec<ipa_polymorphic_call_context, 32> known_contexts; + auto_vec<ipa_agg_value_set, 32> known_aggs; /* When we do caching, use do_estimate_edge_time to populate the entry. */ |