aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
diff options
context:
space:
mode:
authorDavid Blaikie <dblaikie@gmail.com>2020-09-15 12:49:53 -0700
committerDavid Blaikie <dblaikie@gmail.com>2020-09-16 19:36:07 -0700
commit6a07f1edf8e6a172734286cd3ab5988313313d8f (patch)
tree37645d55b8c65a01e175462bf08781a5544eaa21 /llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
parentc140322819806cb292e079d62f2e9dbab697c08c (diff)
downloadllvm-6a07f1edf8e6a172734286cd3ab5988313313d8f.zip
llvm-6a07f1edf8e6a172734286cd3ab5988313313d8f.tar.gz
llvm-6a07f1edf8e6a172734286cd3ab5988313313d8f.tar.bz2
debug_rnglists/symbolizing: reduce memory usage by not caching rnglists
This matches the debug_ranges behavior - though is currently implemented differently. (the debug_ranges parsing was handled by creating a new ranges parser during DIE address querying, and just destroying it after the query - whereas the rnglists parser is a member of the DWARFUnit currently - so the API doesn't cache anymore) I think this could/should be improved by not parsing debug_rnglists headers at all when dumping debug_info or symbolizing - do it the way DWARF (roughly) intended: take the rnglists_base, add addr*index to it, read the offset, parse the list at rnglists_base+offset. This would have no error checking for valid index (because the number of valid indexes is stored in the header, which has a negative offset from rnglists_base - and is sort of only intended for use by dumpers, not by parsers going from debug_info to a rnglist) or out of contribution bounds access (since it wouldn't know the length of the contribution, also in the header) - nor any error-checking that the rnglist contribution was using the same properties as the debug_info (version, DWARF32/64, address size, etc).
Diffstat (limited to 'llvm/lib/Bitcode/Writer/BitcodeWriter.cpp')
0 files changed, 0 insertions, 0 deletions