[PATCH] D68620: DebugInfo: Use base address selection entries for debug_loc

David Blaikie via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 10 12:43:31 PDT 2020


dblaikie added a comment.

In D68620#2245573 <https://reviews.llvm.org/D68620#2245573>, @dblaikie wrote:

> In D68620#2083696 <https://reviews.llvm.org/D68620#2083696>, @wolfgangp wrote:
>
>> In D68620#1995191 <https://reviews.llvm.org/D68620#1995191>, @dblaikie wrote:
>>
>>> In D68620#1729184 <https://reviews.llvm.org/D68620#1729184>, @rupprecht wrote:
>>>
>>>> It looks like this caused a very large increase in binary size (627M->686M). Is that expected/has anyone else observed this?
>>>
>>> sorry I didn't see this (somehow ended up muting this thread) - which binary built with what flags? could you run bloaty or otherwise compare the objects before/after. I'd expect some growth in linked executable size of a non-split, optimized debug build, but that seems a bit more than I'd expect/seems to be observed elsewhere so far as I know.
>>
>> FWIW, we're seeing about a 30-35% increase in the size of the .debug_loc sections across a variety of benchmarks (DWARF4, optimized build, non-split). Given that the majority of location lists seem to have 2 entries, and the base selection entry adds a third, this figure makes intuitive sense. The tradeoff is a reduced number of relocations against the .debug_loc sections, which does not seem to have all that much impact on link times.
>> Given that with DWARF v5 we can use the start_offset/end_offset LLE types with possibly small offset values, it seems that the tradeoff is more favorable towards base selection entries with DWARF5 than it is with DWARF4.
>
> Sorry I haven't given this more attention - but it is on my list (though I guess you've worked around it in some manner/downstream patch for now?)  - but out of curiosity, does the change in 57d8acac64b87cb4286b00485fb2da7521fc091e <https://reviews.llvm.org/rG57d8acac64b87cb4286b00485fb2da7521fc091e> help much? (I mean, it helps in general, so maybe you'd still want to disable the base address specifier use - even if it was offset by that change, because the change would still be a win in addition to disable the base address specifiers)

@probinson - do you have any state here? Whether this is an ongoing issue, whether the improvements to avoid unnecessary debug_loc have reduced the overhead sufficiently, etc?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D68620



More information about the llvm-commits mailing list