[all-commits] [llvm/llvm-project] f65cff: dwarfdump --statistics: Use new location list api
Pavel Labath via All-commits
all-commits at lists.llvm.org
Thu Nov 21 02:53:45 PST 2019
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: f65cfff605f2fd802fc337c6152474e3f3d22a1c
https://github.com/llvm/llvm-project/commit/f65cfff605f2fd802fc337c6152474e3f3d22a1c
Author: Pavel Labath <pavel at labath.sk>
Date: 2019-11-21 (Thu, 21 Nov 2019)
Changed paths:
A llvm/test/tools/llvm-dwarfdump/X86/statistics-base-address.s
M llvm/test/tools/llvm-dwarfdump/X86/statistics-dwo.test
M llvm/tools/llvm-dwarfdump/Statistics.cpp
Log Message:
-----------
dwarfdump --statistics: Use new location list api
Summary:
This patch removes manual location list handling in the statistics code
and replaces it with the new DWARFDie api, which provides access to a
"cooked" location list. This has the following effects:
- the code now properly handles split-dwarf location lists
- it will automatically support dwarf5 location lists once support for
those is added
- it properly handles location lists with base address selection entries
- it fixes a bug where the location list code was using the first
DW_AT_ranges range as a "base address" of the compile unit (it should
have used DW_AT_low_pc instead. The effect of this was that the
computation of the start address of a variable in its scope was broken
for these kinds of compile units. This only manifested itself on
linked files, since in object files the first DW_AT_ranges range
normally starts at 0.
Since pretty much every kind of location list was broken in some way,
it's hard to verify that the new implementation is correct -- the output
will be different in all non-trivial cases, and mostly with good reason.
Most of the existing statistics tests continue to pass though, and a
visual inspection of the statistics for non-trivial inputs shows that
the data is more "reasonable" now. I have updated the "dwo statistics"
test to include the new numbers, as the previous ones were completely
bogus, and I have added a targeted test for the "base address" bug.
Reviewers: dblaikie, cmtice, vsk
Subscribers: aprantl, SouraVX, JDevlieghere, djtodoro, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D70444
More information about the All-commits
mailing list