Re: Follow up from the btf_type_tag discussion in the BPF office hours

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Yonghong.

> On 12/15/22 10:43 AM, Jose E. Marchesi wrote:
>> Of the two problems discussed:
>> 1. DW_TAG_LLVM_annotation not being able to denote annotations to
>>     non-pointed based types.  clang currently ignores these instances.
>>     We discussed two possible options to deal with this:
>>     1.1 To continue ignoring these cases in the front-end, keep the dwarf
>>         expressiveness limitation, and document it.
>>     1.2 To change DW_TAG_LLVM_annotation so it behaves like a qualifier
>>         DIE (like const, volatile, etc.) so it can apply to any type.
>
> Thanks for the detailed update. Yes, we do want to __tag behaving like
> a qualifier.
>
> Today clang only support 'base_type <type_tag> *' style of code.
> But we are open to support non-pointer style of tagging like
> 'base_type <type_tag> global_var'. Because of this, the following
> dwarf output should be adopted:
>    C: int __tag1 * __tag2 * p;
>    dwarf: ptr -> __tag2 --> ptr -> __tag1 -> int
> or
>    C: int __tag1 g;
>    dwarf: var_g -> __tag1 --> int
>
> The above format *might* require particular dwarf tools to add support
> for __tag attribute. But I think it is a good thing in the long run
> esp. if we might add support to non-pointer types. In current
> implementation, dwarf tools can simply ignore the children of ptr
> which they may already do it.

I wonder, since these annotations are atomic, is there a reason for not
using an attribute instead of a DIE tag?  Something like DW_AT_annotation.

The attribute could then be used by any DIE (declaration, type, ...) and
existing DWARF consumers that don't support the new attribute would
happily just ignore it.



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux