> Maybe this is something we could submit for standardization? Definitely. --paulr
On Wed, Sep 4, 2024 at 8:49 AM Felipe de Azevedo Piovezan via Dwarf-discuss <dwarf-discuss@lists.dwarfstd.org> wrote: > David has pretty much summed it up, but to restate: > > When we implemented this, we had to be able to distinguish the two cases > below: > 1. there are no IDX_parent in an accelerator table because the producer > did not generate them. > 2. there are no IDX_parent in an accelerator table because the parent is > not indexed. > > Case 1 is represented by the absence of IDX_parent, whereas Case 2 is > captured by the "flag_present" case. > We also needed case 2 to be space-efficient, which is accomplished through > the use of a Form that has no data associated with it (other than its > abbreviation entry). > > There is more context on this in the thread below. > > https://discourse.llvm.org/t/rfc-improve-dwarf-5-debug-names-type-lookup-parsing-speed/74151/42 > > Maybe this is something we could submit for standardization? > > On Sep 3, 2024, at 15:05, Adrian Prantl via Dwarf-discuss < > dwarf-discuss@lists.dwarfstd.org> wrote: > > CC'ing Felipe Piovezan, who implement this feature, in case he wants to > fill in more details. > > -- adrian > > On Sep 3, 2024, at 10:06 AM, David Blaikie via Dwarf-discuss < > dwarf-discuss@lists.dwarfstd.org> wrote: > > Some context: > > https://discourse.llvm.org/t/rfc-improve-dwarf-5-debug-names-type-lookup-parsing-speed/74151/44 > https://github.com/llvm/llvm-project/pull/77457 > > Essentially clang/llvm produces DW_IDX_parent with DW_FORM_flag_present > when the entry has a parent, but that parent isn't indexed (I think this > mostly comes up for the entities that are direct children of the unit DIE). > > This is designed to make it more efficient for consumers (lldb, in > particular) to do quicker comparisons from the index for qualified names. > > My vague recollection is the idea that the consumer needs that info to > know the difference between "this thing may or may not have a parent" and > "this thing has an unnamed/unindexed parent". > > On Sat, Aug 31, 2024 at 1:03 PM David Anderson via Dwarf-discuss < > dwarf-discuss@lists.dwarfstd.org> wrote: > >> Dwarf5. The Name Table .debug_names >> >> Background: >> 6.1.1.2, page 141 >> Parent debugging information entry, a reference to the >> index entry for the parent. This is represented as the >> offset of the entry relative to the start of the entry >> pool. >> >> Table 7.232 Name index attribute encodings >> DW_IDX_parent constant >> >> >> However clang version 18.1.8 generates >> >> DW_IDX_parent DW_FORM_flag_present >> when there is no parent entry to refer to. >> >> And that does not seem to match what DWARF5 >> says to do. >> >> So what is 'true' supposed to mean for DW_IDX_parent? >> >> A bit puzzled here. >> Thanks for any insight. >> David Anderson >> >> -- >> Lisp Users: Due to the holiday next >> Monday, there will be no garbage >> collection. --seen on Slashdot >> -- >> Dwarf-discuss mailing list >> Dwarf-discuss@lists.dwarfstd.org >> https://lists.dwarfstd.org/mailman/listinfo/dwarf-discuss >> > -- > Dwarf-discuss mailing list > Dwarf-discuss@lists.dwarfstd.org > https://lists.dwarfstd.org/mailman/listinfo/dwarf-discuss > > > -- > Dwarf-discuss mailing list > Dwarf-discuss@lists.dwarfstd.org > https://lists.dwarfstd.org/mailman/listinfo/dwarf-discuss > > > -- > Dwarf-discuss mailing list > Dwarf-discuss@lists.dwarfstd.org > https://lists.dwarfstd.org/mailman/listinfo/dwarf-discuss >
-- Dwarf-discuss mailing list Dwarf-discuss@lists.dwarfstd.org https://lists.dwarfstd.org/mailman/listinfo/dwarf-discuss