jankratochvil added a comment.

In D58330#1400847 <https://reviews.llvm.org/D58330#1400847>, @labath wrote:

> Ok, I see what you mean. It's nice that we don't have this regression in the 
> base case. Though I guess we will still do the copying as soon as debug_types 
> sections appear.


That is not the case. If both `.debug_info` and `.debug_types` are uncompressed 
then the concatenated section just points to the start of `.debug_info` and 
ends at the end of `.debug_types` section, ignoring some "garbage" between 
those two sections (containing sections bettern `.debug_info` and 
`.debug_types`).

I will try to investigate your DW_FORM_* suggestion more thoroughly, thanks.  
It should have the same performance just the code may be more simple.

> I assume there has to be a place where you take something which refers to a 
> DIE in a different section, and then add the magic offset to account for the 
> concatenation, because the magic offset will not be present in dwarf.

D40474 <https://reviews.llvm.org/D40474> patches `DWARFFormValue::Reference()`. 
Common `DW_FORM_ref*` are CU-relative so they need no change.  One needs the 
magic offset (`dwz_debug_info_data.GetByteSize()`) only for `DW_FORM_ref_addr`. 
And then also DWZ-specific `DW_FORM_GNU_ref_alt`.


Repository:
  rLLDB LLDB

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

https://reviews.llvm.org/D58330



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

Reply via email to