Also, fixed-size DIEs are much easier when quickly scanning for something;
you can derive the size of the DIE from the abbrev without having to look
at the DIE content. When you have variable-size values such as LEB128 then
you need to parse the values in order to determine where the next DIE
starts.
(Greg Clayton [LLDB] in particular has expressed a strong preference for
fixed-size values for this reason.)
--paulr

On Mon, Feb 3, 2025 at 1:09 AM Cary Coutant <ccout...@gmail.com> wrote:

> As an alternative to the indexed proposal in 250130.1, which proposes
>> allowing a constant classed value for DW_AT_object_pointer, as an index
>> into the formal parameters of the subprogram, I was wondering how folks
>> would feel about something a bit different:
>>
>> What about a reference classed form that is a (signed) LEB128 relative
>> DIE offset - relative to the start of the DIE containing the attribute
>> value?
>>
>> This would allow for other shortenings of DIEs that are commonly nearby.
>>
>> I don't have measurements on how much it could decrease DWARF size, but
>> could maybe prototype such a thing (bit expensive, because it makes DWARF
>> byte size dependent on itself in some ways - and LLVM's DWARF generation
>> precomputes DIE offsets, etc, rather than relying on assembler relaxation)
>>
>
> Yes, it's worth discussing, but I suspect the downsides you've mentioned
> would outweigh any benefits obtained by using an offset rather than an
> index. If anything, I'd think the index would be more useful if
> you read and internalize the DIE tree. An index would also almost always be
> a single byte (and its size would be predictable), while an offset would be
> more likely to require 2 bytes.
>
> -cary
>
>
-- 
Dwarf-discuss mailing list
Dwarf-discuss@lists.dwarfstd.org
https://lists.dwarfstd.org/mailman/listinfo/dwarf-discuss

Reply via email to