<div dir="ltr">Most build systems support some kind of flags specification? (unix style CC_FLAGS, etc), no? (or at least an obvious place to add uniform/used-everywhere flags in the build files?)</div><br><div class="gmail_quote"><div dir="ltr">On Mon, Dec 11, 2017 at 12:26 PM Zachary Turner <<a href="mailto:zturner@google.com">zturner@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">After that patch, the user has to use /DEBUG:GHASH to the linker.  The idea being that later that will become always-on and no way to opt out.  Ie the only mode.<br><br>It’s hard to get benchmarks against existing applications if you have to modify the build system to pass cc1 options through to the compiler, so there’s some practical value in having it on by default as well<br><div class="gmail_quote"><div dir="ltr">On Mon, Dec 11, 2017 at 12:21 PM David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Mon, Dec 11, 2017 at 12:18 PM Zachary Turner <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">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.<br><br>Also, the followup patch (which adds support to lld) does contain more end to end tests, but i wanted to split up the work <br></blockquote></div></div><div dir="ltr"><div class="gmail_quote"><div><br>*nod* Will the user still have to pass the linker flag after that patch? If so it'd still seem to me to make sense to opt in in both cases, rather than have the size penalty opt-out and the linker-speed opt-in.<br><br>(or ideally one flag, that you can add to your compiler flags - that causes both linker and compiler to do the right things - assuming you're using the compiler as your linker driver)<br> </div></div></div><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_quote"><div dir="ltr">On Mon, Dec 11, 2017 at 11:59 AM David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">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).</div><br><div class="gmail_quote"><div dir="ltr">On Mon, Dec 11, 2017 at 10:43 AM Zachary Turner <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">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.</div><br><div class="gmail_quote"><div dir="ltr">On Mon, Dec 11, 2017 at 10:37 AM David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">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?<br><br><div class="gmail_quote"></div></div><div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Wed, Dec 6, 2017 at 12:59 PM Zachary Turner via Phabricator via llvm-commits <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br></div></div></div><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">zturner created this revision.<br>
Herald added subscribers: JDevlieghere, hiraditya, mgorny.<br>
<br>
This causes emission of .debug$H section unconditionally when `-gcodeview` is present.<br>
<br>
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.<br>
<br>
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.<br>
<br>
<br>
<a href="https://reviews.llvm.org/D40917" rel="noreferrer" target="_blank">https://reviews.llvm.org/D40917</a><br>
<br>
Files:<br>
  llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h<br>
  llvm/include/llvm/DebugInfo/CodeView/TypeHashing.h<br>
  llvm/include/llvm/MC/MCObjectFileInfo.h<br>
  llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp<br>
  llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h<br>
  llvm/lib/DebugInfo/CodeView/CMakeLists.txt<br>
  llvm/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp<br>
  llvm/lib/MC/MCObjectFileInfo.cpp<br>
  llvm/lib/ObjectYAML/CodeViewYAMLTypeHashing.cpp<br>
  llvm/test/DebugInfo/COFF/global-type-hashes.ll<br>
  llvm/test/DebugInfo/COFF/globals.ll<br>
<br></blockquote></div></div><div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div></div>
</blockquote></div>
</blockquote></div>
</blockquote></div>
</blockquote></div></div></blockquote></div>
</blockquote></div>