<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
span.EmailStyle18
        {mso-style-type:personal;
        font-family:"Calibri",sans-serif;
        color:#1F497D;}
span.EmailStyle19
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="FR-CA" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">Yes, I think there’s good value in having both (this patch and parallel ghash in the linker), essentially for incremental
 compilation. Most content programmers here (gameplay, UX, animation, physics, graphic) are iterating in about the same CPP files during a day of work. Ultimately, we want to reduce build time as much as possible and only pay for the changes (in both compiler
 and the linker)<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US">The other alternative to this patch would be do exactly the same thing,
<i>ie.write .debug$H to OBJs</i>, but directly from LLD, when specifying /INCREMENTAL or some other dedicated option. If the .debug$H isn’t there, you write it back right there, and next build you won’t have to pay for it.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span lang="EN-US" style="font-size:11.0pt;font-family:"Calibri",sans-serif"> Zachary Turner <zturner@google.com>
<br>
<b>Sent:</b> Monday, March 18, 2019 3:40 PM<br>
<b>To:</b> reviews+D59025+public+309b7d4311d79b0b@reviews.llvm.org<br>
<b>Cc:</b> santagada@gmail.com; alexander.v.shaposhnikov@gmail.com; rupprecht@google.com; Alexandre Ganea <alexandre.ganea@ubisoft.com>; martin@martin.st; rnk@google.com; jh7370@my.bristol.ac.uk; jakehehrlich@google.com; mgorny@gentoo.org; llvm-commits@lists.llvm.org<br>
<b>Subject:</b> Re: [PATCH] D59025: Add --add-ghashes to llvm-objcopy to append a .debug$H to coff objects<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal">With recent work focusing on computing ghashes in parallel in the linker, which would ultimately eliminate the need to write them to the object file entirely, does this still have the same value?<o:p></o:p></p>
<div>
<div>
<p class="MsoNormal">On Mon, Mar 18, 2019 at 12:32 PM Alexandre Ganea via Phabricator <<a href="mailto:reviews@reviews.llvm.org">reviews@reviews.llvm.org</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<p class="MsoNormal" style="margin-bottom:12.0pt">aganea added a comment.<br>
<br>
In D59025#1433050 <<a href="https://reviews.llvm.org/D59025#1433050" target="_blank">https://reviews.llvm.org/D59025#1433050</a>>, @jhenderson wrote:<br>
<br>
> 2. There's a real-world use-case (which could be as simple as significantly simplifying our own testing or whatever).<br>
<br>
<br>
There's a strong industrial use-case here, which is to use MSVC for compilation and LLD for linking.<br>
MSVC currently doesn't support (yet?) `.debug$H` streams, and this patch provides a workaround. This inherently makes linking with LLD faster, by allowing compilation with MSVC + `.debug$H` computation on remote PCs (when using distributed compilation).<br>
Without this patch, `.debug$H` computation is done locally by LLD, which significantly increases link time.<br>
<br>
In D59025#1428431 <<a href="https://reviews.llvm.org/D59025#1428431" target="_blank">https://reviews.llvm.org/D59025#1428431</a>>, @rupprecht wrote:<br>
<br>
> I've never heard of ghashes<br>
<br>
<br>
Worth the read: <a href="http://blog.llvm.org/2018/01/" target="_blank">http://blog.llvm.org/2018/01/</a><br>
<br>
<br>
Repository:<br>
  rG LLVM Github Monorepo<br>
<br>
CHANGES SINCE LAST ACTION<br>
  <a href="https://reviews.llvm.org/D59025/new/" target="_blank">https://reviews.llvm.org/D59025/new/</a><br>
<br>
<a href="https://reviews.llvm.org/D59025" target="_blank">https://reviews.llvm.org/D59025</a><br>
<br>
<br>
<o:p></o:p></p>
</blockquote>
</div>
</div>
</body>
</html>