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

Reply via email to