On Tue, 2023-02-21 at 11:38 -0800, David Faust wrote: [...] > Very nice. > Keeping the 0x6000 tag and instead changing the name sounds good to us. > > From the GCC side, support for BTF tags will be new either way but > conserving DWARF tag numbers is a good idea. Great, thank you! > > Both [1] and [2] are in a workable state, but [2] lacks support for > > subroutine types and "void *" for now. If you are onboard with this change > > I'll proceed with finalizing [1] and [2]. (Also, ":v2" suffix might be not > > the best, I'm open to naming suggestions). > > As for the name, I am not sure the ":v2" suffix is a good idea. > > If we need a new name anyway, this could be a good opportunity to use > something more generic. The annotation DIEs, especially with the new > format, could be more widely useful than exclusively for producing BTF. > > For example, some other tool may want to process these same user > annotations which are now recorded in DWARF, but may not involve BPF/BTF > at all. Tying "btf" into the name seems to unnecessarily discourage > those use cases. > > What do you think about something like "debug_type_tag" or > "debug_type_annotation" (and a similar update for the decl tags)? > The translation into BTF records would be the same, but the DWARF info > would stand on its own without being tied to BTF. > > (Naming is a bit tricky since terms like 'tag' are already in use by > DWARF, e.g. "type tag" in the context of DWARF DIEs makes me think of > DW_TAG_xxxx_type...) > > As far as I understand, early proposals for the tags were more generic > but the LLVM reviewers wished for something more specific due to the > relatively limited use of the tags at the time. Now that the tags and > their DWARF format have matured I think a good case can be made to > make these generic. We'd be happy to help push for such change. On the other hand, BTF is a thing we are using this annotation for. Any other tool can reuse DW_TAG_LLVM_annotation, but it will need a way to distinguish it's annotations from BTF annotations. And this can be done by using a different DW_AT_name. So, it seems logical to retain "btf" in the DW_AT_name. What do you think? > > As a somewhat orthogonal question, would it be possible for you to use the > > same 0x6000 tag on GCC side? I looked at master branch of [3] but can't > > find any mentions of btf_type_tag. > > Yes, we plan to use the same 0x6000 in GCC. Support for btf_type_tag isn't > committed in master yet; I originally worked on patches [1] last spring but > they were not committed due to some of the issues we've now worked out > (notably the attribute ordering/association problem). But 0x6000 is not > currently in use in GCC and didn't come up as a problem for those patches, > so I don't think it should be an issue. Understood, thank you for the clarification. Thanks, Eduard