Hi,

PR 57289 is an LTO streaming issue.  We should process the bitpack
before moving on to read other stuff in ipa_read_node_info because
bp_unpack_value might read from the stream if there are many bits to
read.  Fixed by the following patch which makes 454.calculix build
with -flto again and also passes bootstrap and testing on
x86_64-linux. OK for trunk?

Thanks,

Martin


2013-05-20  Martin Jambor  <mjam...@suse.cz>

        PR lto/57289
        * ipa-prop.c (ipa_read_node_info): Process param_used and
        controlled_uses in the same order as when writing.

Index: src/gcc/ipa-prop.c
===================================================================
--- src.orig/gcc/ipa-prop.c
+++ src/gcc/ipa-prop.c
@@ -3849,9 +3849,9 @@ ipa_read_node_info (struct lto_input_blo
     info->uses_analysis_done = true;
   info->node_enqueued = false;
   for (k = 0; k < ipa_get_param_count (info); k++)
-    ipa_set_controlled_uses (info, k, streamer_read_hwi (ib));
-  for (k = 0; k < ipa_get_param_count (info); k++)
     ipa_set_param_used (info, k, bp_unpack_value (&bp, 1));
+  for (k = 0; k < ipa_get_param_count (info); k++)
+    ipa_set_controlled_uses (info, k, streamer_read_hwi (ib));
   for (e = node->callees; e; e = e->next_callee)
     {
       struct ipa_edge_args *args = IPA_EDGE_REF (e);

Reply via email to