[PATCH] D85636: [llvm-dwarfdump] Fix misleading scope byte coverage statistics
Orlando Cazalet-Hyams via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Aug 14 05:15:45 PDT 2020
Orlando updated this revision to Diff 285627.
Orlando marked 2 inline comments as done.
Orlando edited the summary of this revision.
Orlando added a comment.
Thanks @aprantl and @jhenderson.
I'd be happy to write a yaml2obj test. The situation that I want to represent is this (note the var location range and the lexical block high_pc and low_pc):
DW_TAG_compile_unit
DW_AT_producer ("clang version 11.0.0")
DW_AT_language (DW_LANG_C99)
DW_AT_name ("example.c")
DW_AT_low_pc (0x0000000000000000)
DW_AT_high_pc (0x000000000000000b)
DW_TAG_subprogram
DW_AT_low_pc (0x0000000000000000)
DW_AT_high_pc (0x000000000000000b)
DW_AT_name ("fun")
DW_AT_type (0x00000061 "int")
DW_TAG_lexical_block
DW_AT_low_pc (0x0000000000000005)
DW_AT_high_pc (0x000000000000000a)
DW_TAG_variable
DW_AT_location (0x00000000:
[0x0000000000000000, 0x0000000000000005): DW_OP_reg5 RDI)
DW_AT_name ("local")
DW_AT_type (0x00000061 "int")
NULL
NULL
DW_TAG_base_type
DW_AT_name ("int")
DW_AT_encoding (DW_ATE_signed)
DW_AT_byte_size (0x04)
NULL
@jhenderson or @Higuoxing, is that something we're able to do with yaml2obj at the moment? Round-tripping my built test file through obj2yaml and yaml2obj (tools built at f5a252ed681 <https://reviews.llvm.org/rGf5a252ed681c155b1d6337309519ab27d5f3b450>) and using llvm-objdump shows:
return.o: file format elf64-x86-64
.debug_info contents:
In the mean time I've shortened the assembly test and added a comment showing the llvm-dwarfdump output.
I've also changed the new stat name back to 'sum_all_variables(#bytes in any scope covered by DW_AT_location)'. I changed this in the last update to look more like 'sum_all_variables(#bytes in parent scope)', but I misunderstood the meaning of that stat. The most similar stat is "sum_all_variables(#bytes in any scope covered by DW_AT_location)". The name isn't great because both the new stat and this one both include DW_AT_const_value locations AFAICT. I think "sum_all_variables(#bytes in any scope covered by a location description) might be better, but I wanted to keep it in line with the existing stats.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D85636/new/
https://reviews.llvm.org/D85636
Files:
llvm/test/tools/llvm-dwarfdump/X86/statistics-dwo.test
llvm/test/tools/llvm-dwarfdump/X86/statistics-v3.test
llvm/test/tools/llvm-dwarfdump/X86/statistics.ll
llvm/test/tools/llvm-dwarfdump/X86/stats-scope-bytes-covered.s
llvm/tools/llvm-dwarfdump/Statistics.cpp
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D85636.285627.patch
Type: text/x-patch
Size: 18405 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200814/ef0d6af3/attachment.bin>
More information about the llvm-commits
mailing list