> On Mon, 15 Dec 2014, Jan Hubicka wrote:
> 
> > Hi, actually this patch break fortran, I get streaming error in: lto1: 
> > internal compiler error: in streamer_get_pickled_tree apparently picking 
> > error_mark_node for variable constructor results in reading 
> > integer_type...
> 
> ?
> 
> Probably the default nodes are referenced by another builtin tree instead
> and you get inconsistent streaming between f951 and lto1.  See the
> assert placed into record_common_node which you should extend to cover
> the optimization node trees.

Yep, I looked into that other assert and added check for optimization nodes,
it does not seem to trigger + error mark node is 0.  Will try to look into this
more today.

Honza
> 
> Richard.
> 
> > Honza
> > > Hi,
> > > the testcase in PR ipa/61324 fails because it is compiled with -O0 and 
> > > linked with -O2.
> > > This should not matter anymore if there wasn't the following problem in 
> > > streamer that
> > > makes us to merge all default nodes across units.
> > > 
> > > Bootstrapped/regtested x86_64-linux, plan to commit it after more testing 
> > > finishes (Firefox)
> > > 
> > > Honza
> > > 
> > >   PR ipa/61324
> > >   * tree-streamer.c (preload_common_nodes): Do not ocnsider optimizatoin
> > >   nad target_option nodes as common nodes; they depend on flags.
> > > 
> > > Index: tree-streamer.c
> > > ===================================================================
> > > --- tree-streamer.c       (revision 218726)
> > > +++ tree-streamer.c       (working copy)
> > > @@ -324,7 +324,14 @@ preload_common_nodes (struct streamer_tr
> > >      /* Skip boolean type and constants, they are frontend dependent.  */
> > >      if (i != TI_BOOLEAN_TYPE
> > >   && i != TI_BOOLEAN_FALSE
> > > - && i != TI_BOOLEAN_TRUE)
> > > + && i != TI_BOOLEAN_TRUE
> > > + /* Skip optimization and target option nodes; they depend on flags.  */
> > > + && i != TI_OPTIMIZATION_DEFAULT
> > > + && i != TI_OPTIMIZATION_CURRENT
> > > + && i != TI_TARGET_OPTION_DEFAULT
> > > + && i != TI_TARGET_OPTION_CURRENT
> > > + && i != TI_CURRENT_TARGET_PRAGMA
> > > + && i != TI_CURRENT_OPTIMIZE_PRAGMA)
> > >        record_common_node (cache, global_trees[i]);
> > >  }
> > >  
> > 
> > 
> 
> -- 
> Richard Biener <rguent...@suse.de>
> SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Jennifer Guild,
> Dilip Upmanyu, Graham Norton HRB 21284 (AG Nuernberg)

Reply via email to