1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 11:13:28 +01:00
llvm-mirror/tools
Pavel Labath 290efde9ec 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
2019-11-21 11:55:21 +01:00
..
bugpoint bugpoint: Add option to disable attribute removal 2019-11-19 11:11:00 +05:30
bugpoint-passes [LegacyPassManager] Delete BasicBlockPass/Manager. 2019-10-30 11:40:16 -07:00
dsymutil [dsymutil] Add support for linking remarks 2019-11-01 15:38:49 -07:00
gold Move CodeGenFileType enum to Support/CodeGen.h 2019-11-13 16:39:34 -08:00
llc Move CodeGenFileType enum to Support/CodeGen.h 2019-11-13 16:39:34 -08:00
lli [lli-child-target] Fix -DBUILD_SHARED_LIBS=on build 2019-10-29 22:46:13 -07: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 Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
llvm-as-fuzzer Fix some include order and file headers issues. NFC 2019-02-21 07:42:31 +00:00
llvm-bcanalyzer [llvm-bcanalyzer] Don't dump the contents if -dump is not passed 2019-11-13 10:38:57 -08:00
llvm-c-test Revert "[DWARF5]Addition of alignment atrribute in typedef DIE." 2019-11-18 15:53:22 +01:00
llvm-cat Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
llvm-cfi-verify [Mips] Use appropriate private label prefix based on Mips ABI 2019-10-23 12:24:35 +02:00
llvm-config llvm-config: emit the C++ standard flag into CXXFLAGS 2019-11-01 09:13:58 -07:00
llvm-cov [llvm-cov] Fix illegal cast from uint64_t to int64_t 2019-11-15 18:13:45 -08:00
llvm-cvtres Share /machine: handling code with llvm-cvtres too 2019-06-12 11:32:43 +00:00
llvm-cxxdump [llvm/Object] - Make ELFObjectFile::getRelocatedSection return Expected<section_iterator> 2019-10-21 11:06:38 +00:00
llvm-cxxfilt [llvm-cxxfilt] Improve strip-underscore behavior 2019-11-18 15:05:41 -08:00
llvm-cxxmap Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
llvm-diff Fix some include order and file headers issues. NFC 2019-02-21 07:42:31 +00:00
llvm-dis [llvm-dis] Fix the disable-output flag 2019-11-14 13:35:21 -08:00
llvm-dwarfdump dwarfdump --statistics: Use new location list api 2019-11-21 11:55:21 +01:00
llvm-dwp [Mips] Use appropriate private label prefix based on Mips ABI 2019-10-23 12:24:35 +02:00
llvm-elfabi [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
llvm-exegesis Move CodeGenFileType enum to Support/CodeGen.h 2019-11-13 16:39:34 -08:00
llvm-extract [llvm-extract] Update the help message for group extraction feature 2019-08-20 20:45:16 +00:00
llvm-go Bump llvm-go to C++14 2019-08-15 10:55:25 +00:00
llvm-ifs [llvm-ifs][NFC] Adds TODO comment for dropping ObjectFileFormat on yaml format. 2019-10-24 10:14:34 -07:00
llvm-isel-fuzzer Move CodeGenFileType enum to Support/CodeGen.h 2019-11-13 16:39:34 -08:00
llvm-itanium-demangle-fuzzer Fix file header issues in fuzzers. NFC 2019-02-21 07:57:14 +00:00
llvm-jitlink [Mips] Use appropriate private label prefix based on Mips ABI 2019-10-23 12:24:35 +02:00
llvm-jitlistener Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
llvm-link [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
llvm-lipo [llvm-lipo] Add missing cast 2019-10-15 20:10:34 +00:00
llvm-lto [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
llvm-lto2 [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
llvm-mc [Mips] Use appropriate private label prefix based on Mips ABI 2019-10-23 12:24:35 +02:00
llvm-mc-assemble-fuzzer [Mips] Use appropriate private label prefix based on Mips ABI 2019-10-23 12:24:35 +02:00
llvm-mc-disassemble-fuzzer Fix file header issues in fuzzers. NFC 2019-02-21 07:57:14 +00:00
llvm-mca [Mips] Use appropriate private label prefix based on Mips ABI 2019-10-23 12:24:35 +02:00
llvm-microsoft-demangle-fuzzer Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
llvm-modextract Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
llvm-mt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
llvm-nm Revert [llvm-nm] Add tapi file support 2019-09-11 21:35:28 +00:00
llvm-objcopy Introduce llvm-install-name-tool 2019-11-19 23:42:37 -08:00
llvm-objdump [llvm-objdump] Print relocation addends in hexadecimal 2019-11-19 12:27:18 +00:00
llvm-opt-fuzzer Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
llvm-opt-report [llvm-opt-report] Improve error handling 2019-09-13 20:52:04 +00:00
llvm-pdbutil [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
llvm-profdata Prune Pass.h include from DataLayout.h. NFCI 2019-10-21 17:51:54 +00:00
llvm-rc llvm-rc - fix uninitialized variable warnings. NFC. 2019-11-18 13:26:50 +00:00
llvm-readobj [llvm-readobj] - Improve dumping of the SHT_LLVM_LINKER_OPTIONS sections. 2019-11-20 12:11:13 +03:00
llvm-reduce llvm-reduce: Follow-up to 372280, now with more-better msan fixing 2019-09-19 20:04:04 +00:00
llvm-rtdyld [Mips] Use appropriate private label prefix based on Mips ABI 2019-10-23 12:24:35 +02:00
llvm-shlib [LLVM-C] Fix omission of INSTALL_WITH_TOOLCHAIN to llvm_add_library() 2019-08-28 22:59:04 +00:00
llvm-size Reapply: [llvm-size] Tidy up error messages (PR42970) 2019-10-14 17:29:15 +00:00
llvm-special-case-list-fuzzer Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
llvm-split Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
llvm-stress [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
llvm-strings [binutils] Add response file option to help and docs 2019-06-21 11:49:20 +00:00
llvm-symbolizer llvm-symbolizer: Untag addresses in object files by default. 2019-08-05 20:59:25 +00:00
llvm-undname [Demangle] Add a few more options to the microsoft demangler 2019-10-15 08:29:56 +00:00
llvm-xray [llvm-objdump] Add warning messages if disassembly + source for problematic inputs 2019-08-15 05:15:22 +00:00
llvm-yaml-numeric-parser-fuzzer Fix file header issues in fuzzers. NFC 2019-02-21 07:57:14 +00:00
lto [LTO][Legacy] Add API for passing LLVM options separately 2019-11-19 16:30:37 -08:00
msbuild vs integration: bump version nbr 2019-06-19 07:39:53 +00:00
obj2yaml [yaml2obj/obj2yaml] - Add support for SHT_LLVM_LINKER_OPTIONS sections. 2019-11-12 09:55:20 +03:00
opt Add -disable-builtin option to opt 2019-11-13 21:32:49 +01:00
opt-viewer [llvm] [cmake] Add install targets for missing distribution components 2019-10-02 16:06:50 +00:00
remarks-shlib [Remarks] Add parser for bitstream remarks 2019-09-09 17:43:50 +00:00
sancov [Mips] Use appropriate private label prefix based on Mips ABI 2019-10-23 12:24:35 +02:00
sanstats [DebugInfo] add SectionedAddress to DebugInfo interfaces. 2019-02-27 13:17:36 +00:00
verify-uselistorder Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
vfabi-demangle-fuzzer [SVFS] Vector Function ABI demangling. 2019-09-19 17:47:32 +00:00
xcode-toolchain [CMake] Use LLVM_ENABLE_IDE instead of CMAKE_CONFIGURATION_TYPES 2018-10-15 21:20:02 +00:00
yaml2obj [yaml2obj/ObjectYAML] - Cleanup the error reporting API, add custom errors handlers. 2019-09-13 16:00:16 +00:00
CMakeLists.txt Fix most of LLVM's tests with LLVM_ENABLE_PIC=OFF 2019-01-16 20:44:36 +00:00
LLVMBuild.txt [llvm-ifs][IFS] llvm Interface Stubs merging + object file generation tool. 2019-08-30 18:26:05 +00:00