On Wed, Aug 20, 2014 at 6:18 PM, Jan Hubicka <hubi...@ucw.cz> wrote: >> On August 18, 2014 8:46:00 PM CEST, Jan Hubicka <hubi...@ucw.cz> wrote: >> >> >> >> The following seems to fix it. In testing now. >> > >> >Will streaming as non-reference prevent DECL from being merged and >> >tails of BLOCK_VAR chains >> >to be corrupted? >> >> Yes, the decl ends up in the function section then, not the global types and >> decls one. > > Hmm, breaking one decl rule. tree-inliner used to do that years ago, too. > When function declaring > extern in local scope got inlined, we duplicated the node. I fixed that by > pushing these to > nonlocalized_list instead.
Well, those decls are only there for debug info so nonlocalized stuff is only a memory optimization. I also remember trying to figure out a testcase convincing me we should stream that vector for LTO (we don't!). And I failed. > Perhaps we could do that earlier, in FE (or fixup in free lang data), for all > EXTERn decls > avoiding those duplications. So I concluded the same - either we should get rid of that or we should fix the FEs to put all non-automatics into this vector. Or simply put _all_ decls into a vector and not a DECL_CHAIN. Richard. > Honza >> >> Richard. >> >> > >> >Honza >> >> >> >> Richard. >> >> >> >> > Richard. >> >> > >> >> >> Thanks. >> >> >> Aldy >>