On 01/16/2015 02:55 AM, Richard Biener wrote:
On Fri, Jan 16, 2015 at 4:11 AM, Jason Merrill <ja...@redhat.com> wrote:
On 01/15/2015 09:58 PM, Aldy Hernandez wrote:
I hoped we wouldn't need the limbo list at all ... that is, parent DIEs
are always present when we create children. I think that should
work in principle if the frontends would create DIEs while parsing.
By the way, don't think I ignored this suggestion. I played around with
this approach for the C++ front-end, and gave up after having to keep
track of a few too many things to get the parenthood right. It's
totally doable; it was just easier to flush out the limbo DIE list as
with my current patch. Ok, call me lazy :).
Note that dwarf2out forces parent DIE creation in some cases
but not in some others - it would be interesting to sort out which
parent DIEs it thinks it cannot create when we create the DIE
for a sibling. Maybe it's just poor ordering of early_global_decl
calls?
In my current patch, I added an ICE to make sure we're not creating
limbo destined DIEs past early dwarf dumping. The only exception to
this (temporarily) is that the ltrans stage is adding things late, but
that's only because we're not streaming dwarf as the ultimate plan is.
I've documented all this.
Aldy