[llvm] r176605 - Debug Info: store the files and directories for each compile unit.

Eric Christopher echristo at gmail.com
Fri Jan 31 23:07:39 PST 2014


I was under the impression is was a speed improvement for the
debugger. Having a smaller line table to look through for a given
compile unit would let it find a given address faster.

That said, without ranges for compile units I'm not sure how the
debugger would know. We have those now, but not then.

Greg: I'm guessing you made the request, any further insight here? :)

-eric

On Fri, Jan 31, 2014 at 8:20 PM, Rafael EspĂ­ndola
<rafael.espindola at gmail.com> wrote:
> Hi Manman and Eric,
>
> I started looking at what would be needed to properly represent this
> in a .s file in order to remove the calls to hasRawTextSupport. It
> looks like we would need a compilation unit id for .file and some
> directive that produces the offset of a given compilation unit in
> debug_line. Not too hard, but I am somewhat confused as to what the
> advantage of having multiple line tables is. From your commit message
> it sounds like the prologue is duplicated, but  that is not what I am
> seeing.
>
> As an experiment I compiled clang with lto and -gline-tables-only. The
> size of the resulting .debug_line section is
>
> via assembly: 0x9b6358 bytes (10.183512 MB)
> direct:            0xbb7a83 bytes (12.286595 MB)
>
> The version using direct object emission has 1267 line tables. The
> version using assembly has 1. Sure, that table has 10738 files, but it
> is still quiet a bit smaller than the total in the direct emission
> case.
>
> Cheers,
> Rafael




More information about the llvm-commits mailing list