LTO inhibiting dwarf lexical blocks output
Richard Biener
richard.guenther@gmail.com
Thu Aug 21 08:51:00 GMT 2014
On Wed, Aug 20, 2014 at 6:18 PM, Jan Hubicka <hubicka@ucw.cz> wrote:
>> On August 18, 2014 8:46:00 PM CEST, Jan Hubicka <hubicka@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
>>
More information about the Gcc
mailing list