Michael137 added a comment.

In D144181#4133056 <https://reviews.llvm.org/D144181#4133056>, @Michael137 
wrote:

> In D144181#4133025 <https://reviews.llvm.org/D144181#4133025>, @dblaikie 
> wrote:
>
>> Ah, accidentally posted to the lldb part of this stack... instead:
>>
>> Any chance we can make these work more like member functions (could the 
>> ctors include their mangled names, for instance)? Or is it the innate nature 
>> of ctors having the various C1 <https://reviews.llvm.org/C1>/C2/etc versions?
>
> Initially we tried that in https://reviews.llvm.org/D143652. The existence of 
> multiple constructor definitions which aren't linked to the `DISubprogram` 
> declaration makes it tough. We need to start with a pretty expensive search 
> through the index for all the possible definitions. But then we need to 
> somehow choose the right one to take the linkage name from. And that context 
> isn't available at the point where LLDB parses DWARF.
>
> I'll post some numbers of how much space this would take with Adrian's 
> suggestion and go from there

On second thought, since there are possibly multiple ABI tags per decl and only 
a single attribute is allowed on a DIE we'd need to somehow encode the ABI tag 
strings into the single attribute. It's doable but I think the patch as 
proposed would be more maintainable.

Debug-info size difference for `liblldb.dylib` is below (left is with the 
annotations, right is without). I.e., debug size difference is ~0.4%

  
---------------------------------------------------------------------------------
          
  file: lib/liblldb.dylib.dSYM/Contents/Resources/DWARF/liblldb.dylib           
             
  
---------------------------------------------------------------------------------
          
  SECTION           SIZE (b)                 SECTION           SIZE (b)         
             
  ----------------  ---------                ----------------  ---------        
             
  __debug_line       91828488 (8.10%)        __debug_line       91828547 
(8.12%)             
  __debug_info      268703597 (23.69%)       __debug_info      265011327 
(23.44%)            
  __debug_ranges      2116400 (0.19%)        __debug_ranges      2116400 
(0.19%)             
  __debug_aranges      200464 (0.02%)        __debug_aranges      200464 
(0.02%)             
  __debug_loc           27234 (0.00%)        __debug_loc           27234 
(0.00%)             
  __debug_abbrev        14129 (0.00%)        __debug_abbrev        14117 
(0.00%)             
  __debug_str       456849994 (40.28%)       __debug_str       456849978 
(40.41%)            
  __apple_names      48851592 (4.31%)        __apple_names      48851592 
(4.32%)             
  __apple_namespac     638616 (0.06%)        __apple_namespac     638616 
(0.06%)             
  __apple_types      27153903 (2.39%)        __apple_types      27153903 
(2.40%)             
  __apple_objc             36 (0.00%)        __apple_objc             36 
(0.00%)             
                                                                                
             
   Total Size: 896384453  (79.04%)            Total Size: 892692214  (78.97%)   
             
   Total File Size: 1134157253                Total File Size: 1130465014       
             
  ----------------------------------------------------                          
             

I'll just put this behind an lldb tuning


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D144181

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

Reply via email to