re PR tree-optimization/42366 (ICE in ipa_write_node_info, at ipa-prop.c:2023)
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. From-SVN: r155630
This commit is contained in:
parent
7710285472
commit
438789ffe3
@ -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
|
||||
|
11
gcc/ipa-cp.c
11
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user