Yonghong Song
unread,Mar 30, 2021, 11:27:03 PM3/30/21Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to David Blaikie, Fāng-ruì Sòng, Nick Desaulniers, Arnaldo Carvalho de Melo, Alexei Starovoitov, bpf, kerne...@fb.com, Linux Kbuild mailing list, Masahiro Yamada, Michal Marek, clang-built-linux, Sedat Dilek, Bill Wendling
Approximation of the number of tags to visit:
...
[10] DW_TAG_array_type DW_CHILDREN_yes
DW_AT_type DW_FORM_ref4
DW_AT_sibling DW_FORM_ref4
[11] DW_TAG_variable DW_CHILDREN_no
DW_AT_name DW_FORM_strp
DW_AT_decl_file DW_FORM_data1
DW_AT_decl_line DW_FORM_data2
DW_AT_decl_column DW_FORM_data1
DW_AT_type DW_FORM_ref4
DW_AT_external DW_FORM_flag_present
DW_AT_declaration DW_FORM_flag_present
[12] DW_TAG_member DW_CHILDREN_no
DW_AT_name DW_FORM_string
DW_AT_decl_file DW_FORM_data1
DW_AT_decl_line DW_FORM_data1
DW_AT_decl_column DW_FORM_data1
DW_AT_type DW_FORM_ref4
DW_AT_data_member_location DW_FORM_data1
[13] DW_TAG_subrange_type DW_CHILDREN_no
DW_AT_type DW_FORM_ref4
DW_AT_upper_bound DW_FORM_data1
...
The bigger number means more tags to visit and will consume more time.
For a binary not compiled with lto, all these tags will be visited
before declaring that the dwarf does not have cross-cu reference.
So the number is just a relative guess on the cpu cost. But ya,
have to have real implementation first...