1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/test/tools
Pavel Labath 6350896386 DWARFDebugLoclists: add location list "interpretation" logic
Summary:
This patch extracts the logic for computing the "absolute" locations,
which was partially present in the debug_loclists dumper, completes it,
and moves it into a separate function. This makes it possible to later
reuse the same logic for uses other than dumping.

The dumper is changed to reuse the location list interpreter, and its
format is changed somewhat. In "verbose" mode it prints the "raw" value
of a location list, the interpreted location (if available) and the
expression itself. In non-verbose mode it prints only one of the
location forms: it prefers the interpreted form, but falls back to the
"raw" format if interpretation is not possible (for instance, because we
were not given a base address, or the resolution of indirect addresses
failed).

This patch also undos some of the changes made in D69672, namely the
part about making all functions static. The main reason for this is that
I learned that the original approach (dumping only fully resolved
locations) meant that it was impossible to rewrite one of the existing
tests. To make that possible (and make the "inline location" dump work
in more cases), I now reuse the same dumping mechanism as is used for
section-based dumping. As this required having more objects know about
the various location lists classes, it seemed like a good idea to create
an interface abstracting the difference between them.

Therefore, I now create a DWARFLocationTable class, which will serve as
a base class for the location list classes. DWARFDebugLoclists is made
to inherit from that. DWARFDebugLoc will follow.

Another positive effect of this change is that section-based dumping
code will not need to use templates (as originally) envisioned, and that
the argument lists of the dumping functions become shorter.

Reviewers: dblaikie, probinson, JDevlieghere, aprantl, SouraVX

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D70081
2019-11-12 10:40:13 +01:00
..
dsymutil [dsymutil] Second attempt to fix dsymutil tests on non-darwin platforms 2019-11-01 21:07:40 -07:00
gold [ThinLTO] Import readonly vars with refs 2019-11-07 15:13:35 +03:00
llvm-ar llvm-ranlib/nm: Don't print usage message except for usage errors 2019-11-08 15:17:07 -08:00
llvm-as
llvm-cfi-verify
llvm-config
llvm-cov Revert "[llvm-cov] Add option to whitelist filenames" 2019-10-29 22:38:38 -07:00
llvm-cvtres
llvm-cxxdump [llvm/Object] - Make ELFObjectFile::getRelocatedSection return Expected<section_iterator> 2019-10-21 11:06:38 +00:00
llvm-cxxfilt
llvm-cxxmap Fix non-portable GNU diff option 2019-10-23 11:19:01 -04:00
llvm-diff
llvm-dlltool
llvm-dwarfdump DWARFDebugLoclists: add location list "interpretation" logic 2019-11-12 10:40:13 +01:00
llvm-dwp
llvm-elfabi
llvm-exegesis [llvm-exegesis] Show noise cluster in analysis output. 2019-10-11 11:33:18 +00:00
llvm-extract
llvm-ifs
llvm-isel-fuzzer
llvm-lib
llvm-lipo
llvm-lit
llvm-locstats
llvm-lto
llvm-lto2
llvm-mc
llvm-mca [X86] Fix SLM v2i64 ADD/Sub/CMPEQ instruction schedules 2019-11-06 19:08:15 +00:00
llvm-modextract
llvm-mt
llvm-nm [WebAssembly] Allow multivalue signatures in object files 2019-10-18 20:27:30 +00:00
llvm-objcopy Revert "Introduce llvm-install-name-tool" 2019-11-06 17:04:04 -08:00
llvm-objdump [llvm-objdump] Fix spurious "The end of the file was unexpectedly encountered" if a SHT_NOBITS sh_offset is larger than the file size 2019-11-05 11:14:12 -08:00
llvm-opt-fuzzer
llvm-opt-report
llvm-pdbutil
llvm-profdata Revert "Fixed a profdata file size detection on Windows system." 2019-11-10 18:05:24 -08:00
llvm-ranlib llvm-ranlib/nm: Don't print usage message except for usage errors 2019-11-08 15:17:07 -08:00
llvm-rc
llvm-readobj [llvm-readelf/llvm-readobj][test] - Convert elf-linker-options.ll to use YAML. 2019-11-12 10:08:06 +03:00
llvm-size [yaml2obj, obj2yaml] - Add support for SHT_NOTE sections. 2019-10-25 13:25:56 +03:00
llvm-split
llvm-strings
llvm-symbolizer [Symbolize] Use the local MSVC C++ demangler instead of relying on dbghelp. NFC. 2019-10-16 20:38:44 +00:00
llvm-xray [llvm-xray] Add basic test for AArch64 support 2019-11-08 14:00:31 -08:00
lto
obj2yaml [yaml2obj/obj2yaml] - Add support for SHT_LLVM_LINKER_OPTIONS sections. 2019-11-12 09:55:20 +03:00
opt-viewer
sancov Revert 374629 "[sancov] Accommodate sancov and coverage report server for use under Windows" 2019-10-12 05:23:43 +00:00
sanstats
yaml2obj [yaml2obj/obj2yaml] - Add support for SHT_LLVM_LINKER_OPTIONS sections. 2019-11-12 09:55:20 +03:00