[PATCH] D40917: Emit .debug$H section in clang

Zachary Turner via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 11 12:18:37 PST 2017


Tge followup patch actually gives some benchmarks, and i have a document
that I’m writing up in parallel that details some of this. But tl;dr is
about 35-40% reduction in link time.

Also, the followup patch (which adds support to lld) does contain more end
to end tests, but i wanted to split up the work
On Mon, Dec 11, 2017 at 11:59 AM David Blaikie <dblaikie at gmail.com> wrote:

> 15% increase in object size is pretty huge (at least in the world I'm
> working in, which is admittedly rather different than yours). By untested I
> meant end-to-end, sorry, should've been clear. Like "not
> demonstrated/used/useful" (for someone who uses the compiler today).
>
> On Mon, Dec 11, 2017 at 10:43 AM Zachary Turner <zturner at google.com>
> wrote:
>
>> I think there is a decent amount of test coverage provided by this and
>> previous patches.  Was there some other kind of test coverage you had in
>> mind?  I toyed with the idea of putting it behind an option, but it seemed
>> unnecessary since there is no real disadvantage to having the extra data in
>> there, aside from a relatively small increase in build size.
>>
>> On Mon, Dec 11, 2017 at 10:37 AM David Blaikie <dblaikie at gmail.com>
>> wrote:
>>
>>> Seems a bit surprising to me to implement this as on by default while
>>> it's unused and untested - I'd expect an extra flag during such an
>>> experimental phase?
>>>
>>> On Wed, Dec 6, 2017 at 12:59 PM Zachary Turner via Phabricator via
>>> llvm-commits <llvm-commits at lists.llvm.org> wrote:
>>>
>>>> zturner created this revision.
>>>> Herald added subscribers: JDevlieghere, hiraditya, mgorny.
>>>>
>>>> This causes emission of .debug$H section unconditionally when
>>>> `-gcodeview` is present.
>>>>
>>>> I ran some benchmarks on a self-hosted build and found a ~2% increase
>>>> in overall build time (within the margin of error, so basically noise), and
>>>> a ~15% increase in object file size, on average.
>>>>
>>>> Currently the linker doesn't use this, that will work will come in a
>>>> followup patch.  For now, we're just testing that clang emits it correctly
>>>> with some obj2yaml and llc based tests.
>>>>
>>>>
>>>> https://reviews.llvm.org/D40917
>>>>
>>>> Files:
>>>>   llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h
>>>>   llvm/include/llvm/DebugInfo/CodeView/TypeHashing.h
>>>>   llvm/include/llvm/MC/MCObjectFileInfo.h
>>>>   llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
>>>>   llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h
>>>>   llvm/lib/DebugInfo/CodeView/CMakeLists.txt
>>>>   llvm/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp
>>>>   llvm/lib/MC/MCObjectFileInfo.cpp
>>>>   llvm/lib/ObjectYAML/CodeViewYAMLTypeHashing.cpp
>>>>   llvm/test/DebugInfo/COFF/global-type-hashes.ll
>>>>   llvm/test/DebugInfo/COFF/globals.ll
>>>>
>>>> _______________________________________________
>>>> llvm-commits mailing list
>>>> llvm-commits at lists.llvm.org
>>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171211/9da7aa92/attachment.html>


More information about the llvm-commits mailing list