On Tue, May 21, 2013 at 1:24 PM, Martin Jambor <mjam...@suse.cz> wrote: > 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?
Ok. Thanks, Richard. > 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);