diff options
author | Martin Jambor <mjambor@suse.cz> | 2010-05-19 13:49:36 +0200 |
---|---|---|
committer | Martin Jambor <jamborm@gcc.gnu.org> | 2010-05-19 13:49:36 +0200 |
commit | 749aa96dabbb0fef0d81b382a49849186f907d95 (patch) | |
tree | 0bf93b58c18ebebe3ec5631fc8ca7271c6f036c0 /gcc/ipa-inline.c | |
parent | c9018c71d3cbb2929ab53fa7a762ba43934785f5 (diff) | |
download | gcc-749aa96dabbb0fef0d81b382a49849186f907d95.zip gcc-749aa96dabbb0fef0d81b382a49849186f907d95.tar.gz gcc-749aa96dabbb0fef0d81b382a49849186f907d95.tar.bz2 |
ipa-prop.c (ipa_print_node_jump_functions): Print jump functions also for indirect edges.
2010-05-19 Martin Jambor <mjambor@suse.cz>
* ipa-prop.c (ipa_print_node_jump_functions): Print jump functions
also for indirect edges. Actual printing moved...
(ipa_print_node_jump_functions_for_edge): ...here.
(ipa_compute_jump_functions): Renamed to
ipa_compute_jump_functions_for_edge and made static.
(ipa_compute_jump_functions): New function.
(make_edge_direct_to_target): Check if the number of arguments on
the newly direct edge is the same as the number of parametrs of
the callee.
* ipa-cp.c (ipcp_init_stage): Most functionality moved to new
ipa_compute_jump_functions. Call ipa_analyze_params_uses.
* ipa-inline.c (inline_indirect_intraprocedural_analysis): Call
analysis functions unconditionally, call the new
ipa_analyze_params_uses on the node instead of every edge.
* testsuite/g++.dg/ipa/ivinline-8.C: New test.
* testsuite/gcc.dg/ipa/iinline-2.c: New test.
From-SVN: r159559
Diffstat (limited to 'gcc/ipa-inline.c')
-rw-r--r-- | gcc/ipa-inline.c | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c index e1de7ce..12757f7 100644 --- a/gcc/ipa-inline.c +++ b/gcc/ipa-inline.c @@ -1971,21 +1971,10 @@ struct gimple_opt_pass pass_inline_parameters = static void inline_indirect_intraprocedural_analysis (struct cgraph_node *node) { - struct cgraph_edge *cs; - - if (!flag_ipa_cp) - { - ipa_initialize_node_params (node); - ipa_detect_param_modifications (node); - } + ipa_initialize_node_params (node); + ipa_detect_param_modifications (node); ipa_analyze_params_uses (node); - - if (!flag_ipa_cp) - for (cs = node->callees; cs; cs = cs->next_callee) - { - ipa_count_arguments (cs); - ipa_compute_jump_functions (cs); - } + ipa_compute_jump_functions (node); if (dump_file) { |