Fix streaming of target optimization/option nodes

Richard Biener rguenther@suse.de
Mon Dec 15 08:41:00 GMT 2014


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.

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 <rguenther@suse.de>
SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Jennifer Guild,
Dilip Upmanyu, Graham Norton HRB 21284 (AG Nuernberg)



More information about the Gcc-patches mailing list