1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
llvm-mirror/lib/DebugInfo
David Blaikie 01ab206194 [WIP][DebugInfo] Lazily parse debug_loclist offsets
Parsing DWARFv5 debug_loclist offsets when a CU is parsed is weighing
down memory usage of symbolizers that don't need to parse this data at
all. There's not much benefit to caching these anyway - since they are
O(1) lookup and reading once you know where the offset list starts (and
can do bounds checking with the offset list size too).

In general, I think it might be time to start paying down some of the
technical debt of loc/loclist/range/rnglist parsing to try to unify it a
bit more.

eg:

* Currently DWARFUnit has: RangeSection, RangeSectionBase, LocSection,
  LocSectionBase, LocTable, RngListTable, LoclistTableHeader (be nice if
  these were all wrapped up in two variables - one for loclists, one for
  rnglists)

* rnglists and loclists are handled differently (see:
  LoclistTableHeader, but no RnglistTableHeader)

* maybe all these types could be less stateful - lazily parse what they
  need to, even reparsing rather than caching because it doesn't seem
  too expensive, for instance. (though admittedly so long as it's
  constantcost/overead per compilatiton that's probably adequate)

* Maybe implementing and using a DWARFDataExtractor that can be
  sub-ranged (so we could slice it up to just the single contribution) -
  though maybe that's not so useful because loc/ranges need to refer to
  it by absolute, not contribution-relative mechanisms

Differential Revision: https://reviews.llvm.org/D86110
2020-08-18 10:49:39 -07:00
..
CodeView [CodeView] Add TypeCollection::replaceType to replace type records post-merging 2020-06-18 09:17:14 -04:00
DWARF [WIP][DebugInfo] Lazily parse debug_loclist offsets 2020-08-18 10:49:39 -07:00
GSYM [Object] Change ObjectFile::getSymbolValue() return type to Expected<uint64_t> 2020-05-02 14:04:44 +08:00
MSF Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
PDB Revert "PDBExtras.h - remove unnecessary raw_ostream forward declaration. NFCI." 2020-08-06 15:15:43 +02:00
Symbolize [Symbolize][PDB] Switch llvm-symbolizer to use PDB_ReaderType::Native. 2020-07-22 17:17:57 -07:00
CMakeLists.txt
LLVMBuild.txt