<div dir="ltr"><div class="gmail_quote gmail_quote_container"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">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:<br><br>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?<br><br>This would allow for other shortenings of DIEs that are commonly nearby.<br><br>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)<br></div></blockquote><div> </div><div>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.</div><div><br></div><div>-cary</div><div><br></div></div></div>