diff options
author | Martin Liska <mliska@suse.cz> | 2014-12-22 10:19:09 +0100 |
---|---|---|
committer | Martin Liska <marxin@gcc.gnu.org> | 2014-12-22 09:19:09 +0000 |
commit | dd912cb89c4e5dfda4a2710ae3082f5cb12a1d04 (patch) | |
tree | 844d04e2bcaef55647fafa93f6a03d340b1f3412 /gcc/ipa-inline-analysis.c | |
parent | 4008290f65988de470218021818009fddeaf50dd (diff) | |
download | gcc-dd912cb89c4e5dfda4a2710ae3082f5cb12a1d04.zip gcc-dd912cb89c4e5dfda4a2710ae3082f5cb12a1d04.tar.gz gcc-dd912cb89c4e5dfda4a2710ae3082f5cb12a1d04.tar.bz2 |
ipa-prop uses symbol_summary class.
* lto-partition.c: Include of symbol-summary.h is added.
* lto-symtab.c: Likewise.
* lto.c: Likewise.
* auto-profile.c: Include of symbol-summary.h is added.
* cgraph.c: Likewise.
* cgraphbuild.c: Likewise.
* cgraphclones.c: Likewise.
* cgraphunit.c: Likewise.
* ipa-cp.c: Likewise.
* ipa-devirt.c: Likewise.
* ipa-icf.c: Likewise.
* ipa-inline-analysis.c (evaluate_properties_for_edge): New
ipa_node_params_sum data structure is used.
(inline_node_duplication_hook): Likewise.
(estimate_function_body_sizes): Likewise.
(remap_edge_change_prob): Likewise.
(inline_merge_summary): Likewise.
* ipa-inline-transform.c: Include of symbol-summary.h is added.
* ipa-inline.c (early_inliner): New ipa_node_params_sum data structure
is used.
* ipa-polymorphic-call.c: Include of symbol-summary.h is added.
* ipa-profile.c: Include of symbol-summary.h is added.
* ipa-prop.c (ipa_propagate_indirect_call_infos): New ipa_node_params_sum
data structure is used.
(ipa_node_params::~ipa_node_params): New function.
(ipa_free_all_node_params): Destruction is simplified.
(ipa_node_removal_hook): Removed.
(ipa_add_new_function): Renamed from ipa_node_duplication_hook.
(ipa_node_params_t::duplicate): New function.
(ipa_register_cgraph_hooks): Few hooks are removed.
(ipa_unregister_cgraph_hooks): Likewise.
(ipa_prop_write_jump_functions): New ipa_node_params_sum is used.
* ipa-prop.h (struct ipa_node_params): Destructor introduced for
the structure.
(ipa_check_create_node_params): Vector for ipa_node_params is replaced
with function_summary.
* ipa-split.c: Include of symbol-summary.h is added.
* ipa-utils.c: Include of symbol-summary.h is added.
* ipa.c: Include of symbol-summary.h is added.
* omp-low.c: Include of symbol-summary.h is added.
* tree-inline.c: Include of symbol-summary.h is added.
* tree-sra.c: Include of symbol-summary.h is added.
* tree-ssa-pre.c: Include of symbol-summary.h is added.
From-SVN: r219005
Diffstat (limited to 'gcc/ipa-inline-analysis.c')
-rw-r--r-- | gcc/ipa-inline-analysis.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c index 3b622f2..888d6e3 100644 --- a/gcc/ipa-inline-analysis.c +++ b/gcc/ipa-inline-analysis.c @@ -110,6 +110,7 @@ along with GCC; see the file COPYING3. If not see #include "ipa-ref.h" #include "cgraph.h" #include "alloc-pool.h" +#include "symbol-summary.h" #include "ipa-prop.h" #include "lto-streamer.h" #include "data-streamer.h" @@ -920,7 +921,7 @@ evaluate_properties_for_edge (struct cgraph_edge *e, bool inline_p, if (known_contexts_ptr) known_contexts_ptr->create (0); - if (ipa_node_params_vector.exists () + if (ipa_node_params_sum && !e->call_stmt_cannot_inline_p && ((clause_ptr && info->conds) || known_vals_ptr || known_contexts_ptr)) { @@ -1142,7 +1143,7 @@ inline_node_duplication_hook (struct cgraph_node *src, /* When there are any replacements in the function body, see if we can figure out that something was optimized out. */ - if (ipa_node_params_vector.exists () && dst->clone.tree_map) + if (ipa_node_params_sum && dst->clone.tree_map) { vec<size_time_entry, va_gc> *entry = info->entry; /* Use SRC parm info since it may not be copied yet. */ @@ -2487,7 +2488,7 @@ estimate_function_body_sizes (struct cgraph_node *node, bool early) calculate_dominance_info (CDI_DOMINATORS); loop_optimizer_init (LOOPS_NORMAL | LOOPS_HAVE_RECORDED_EXITS); - if (ipa_node_params_vector.exists ()) + if (ipa_node_params_sum) { parms_info = IPA_NODE_REF (node); nonconstant_names.safe_grow_cleared @@ -2637,7 +2638,7 @@ estimate_function_body_sizes (struct cgraph_node *node, bool early) nonconstant_names[SSA_NAME_VERSION (gimple_call_lhs (stmt))] = false_p; } - if (ipa_node_params_vector.exists ()) + if (ipa_node_params_sum) { int count = gimple_call_num_args (stmt); int i; @@ -3384,7 +3385,7 @@ static void remap_edge_change_prob (struct cgraph_edge *inlined_edge, struct cgraph_edge *edge) { - if (ipa_node_params_vector.exists ()) + if (ipa_node_params_sum) { int i; struct ipa_edge_args *args = IPA_EDGE_REF (edge); @@ -3540,7 +3541,7 @@ inline_merge_summary (struct cgraph_edge *edge) else toplev_predicate = true_predicate (); - if (ipa_node_params_vector.exists () && callee_info->conds) + if (ipa_node_params_sum && callee_info->conds) { struct ipa_edge_args *args = IPA_EDGE_REF (edge); int count = ipa_get_cs_argument_count (args); |