> 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)