aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-inline.c
diff options
context:
space:
mode:
authorMartin Jambor <mjambor@suse.cz>2010-05-19 13:49:36 +0200
committerMartin Jambor <jamborm@gcc.gnu.org>2010-05-19 13:49:36 +0200
commit749aa96dabbb0fef0d81b382a49849186f907d95 (patch)
tree0bf93b58c18ebebe3ec5631fc8ca7271c6f036c0 /gcc/ipa-inline.c
parentc9018c71d3cbb2929ab53fa7a762ba43934785f5 (diff)
downloadgcc-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.c17
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)
{