diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ad67466278a1184f4e2392c4b253a0b2dfca1284..a3ada177f40a62646b37d5361e32ff13a19493bc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2010-01-04 Martin Jambor <mjambor@suse.cz> + + PR tree-optimization/42366 + * ipa-cp.c (ipcp_init_stage): Always call ipa_compute_jump_functions on + edges with variable number of parameters. + * ipa-prop.c (ipa_write_node_info): Stream out uses_analysis_done + flag instead of asserting it. + (ipa_read_node_info): Read uses_analysis_done flag. + 2010-01-04 Richard Guenther <rguenther@suse.de> * tree-ssa-sccvn.c (vn_reference_op_compute_hash): Use diff --git a/gcc/ipa-cp.c b/gcc/ipa-cp.c index b6e471230fa8c3be19865915baac704233d4a333..66de8db7c0a4b7083142e4e7d24841de5fee45c6 100644 --- a/gcc/ipa-cp.c +++ b/gcc/ipa-cp.c @@ -633,15 +633,8 @@ ipcp_init_stage (void) ipa_count_arguments (cs); if (ipa_get_cs_argument_count (IPA_EDGE_REF (cs)) != ipa_get_param_count (IPA_NODE_REF (cs->callee))) - { - /* Handle cases of functions with - a variable number of parameters. */ - ipa_set_called_with_variable_arg (IPA_NODE_REF (cs->callee)); - if (flag_indirect_inlining) - ipa_compute_jump_functions (cs); - } - else - ipa_compute_jump_functions (cs); + ipa_set_called_with_variable_arg (IPA_NODE_REF (cs->callee)); + ipa_compute_jump_functions (cs); } } } diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c index 9387f0e0779ab8f9a2a368d62ee98a35b74d83d1..9fbd9d804e92478f78020e81c8b37df945fb0cc7 100644 --- a/gcc/ipa-prop.c +++ b/gcc/ipa-prop.c @@ -2018,9 +2018,9 @@ ipa_write_node_info (struct output_block *ob, struct cgraph_node *node) bp = bitpack_create (); bp_pack_value (bp, info->called_with_var_arguments, 1); + bp_pack_value (bp, info->uses_analysis_done, 1); gcc_assert (info->modification_analysis_done || ipa_get_param_count (info) == 0); - gcc_assert (info->uses_analysis_done || ipa_get_param_count (info) == 0); gcc_assert (!info->node_enqueued); gcc_assert (!info->ipcp_orig_node); for (j = 0; j < ipa_get_param_count (info); j++) @@ -2063,6 +2063,7 @@ ipa_read_node_info (struct lto_input_block *ib, struct cgraph_node *node, bp = lto_input_bitpack (ib); info->called_with_var_arguments = bp_unpack_value (bp, 1); + info->uses_analysis_done = bp_unpack_value (bp, 1); if (ipa_get_param_count (info) != 0) { info->modification_analysis_done = true;