clayborg closed this revision.
clayborg added a comment.

r362103 | gclayton | 2019-05-30 08:21:23 -0700 (Thu, 30 May 2019) | 9 lines

Improve DWARF parsing and accessing by 1% to 2%

When LLDB first started we didn't have our mmap of the DWARF data done 
correctly and if the backing file would change we would get live changes as the 
file changed and it would cause problems. We now mmap correctly and do not run 
into these issues. There was legacy code in 
DWARFDebugInfoEntry::GetAbbreviationDeclarationPtr(...) that would always 
extract the abbrev index each time the function was called to verify that DWARF 
data hadn't changed and a warning was emitted if it did. We no longer need this 
and the code was removed. The other thing this function did when it parsed the 
abbrev index was give us the offset of the first attribute bytes by adding the 
LEB128 size to the offset. This required an extra parameter to 
DWARFDebugInfoEntry::GetAbbreviationDeclarationPtr(...) which is now removed. I 
added "lldb::offset_t DWARFDebugInfoEntry::GetFirstAttributeOffset() const" 
which calculates this when we need it and modified all sites that need the 
offset to call it.

Now that we aren't decoding and verifying the abbrev index, it speeds up DWARF 
access by 1% to 2%.

Differential Revision: https://reviews.llvm.org/D62634


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D62634/new/

https://reviews.llvm.org/D62634



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to