<div dir="ltr">I'm in favor for this change.<div><br><div>I've also done some testing myself and noticed only about 1-2% increase of memory, in exchange for about 1-3% increase of speed.</div><div>I can't say that a speedup of 3% (at most, and usually 1%), worth working for, this is a simple change, that give a lot more than this; especially simpler code path (also easier debugging).</div></div><div><br></div><div>As part of my measurements, while compiling "deal.II", the maximum number of simultaneous `Use` instances was 2,728,963 (and in most cases, about half of it).</div><div>In a 64-bit process (Clang for that matter), we will have roughly 21 MB of memory spent on the extra pointer (of 8 bytes size).</div><div>On a 16-core machine, for which, in many cases, a build will trigger that many simultaneous Clang processes, we will reach, in the worst case, 336 MB more memory spent on compilation.</div><div><br></div><div>Is it worth it? I think it is. But I am not sure I see the whole picture - are there low-memory systems that need to run LLVM on?</div><div><br></div><div>I am not sure what needs to be done to approve such a fundamental change; especially when we can't prove the Waymarking was needed at all.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Apr 2, 2020 at 8:10 PM Chris Lattner via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;">On Apr 1, 2020, at 5:51 AM, <a href="mailto:Tyker1@outlook.com" target="_blank">Tyker1@outlook.com</a> via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>> wrote:<br><div><blockquote type="cite"><br><div><div style="font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;font-family:Calibri,Helvetica,sans-serif;font-size:12pt;background-color:rgb(255,255,255)"><p style="margin:0in 0in 8pt;font-size:12pt;font-family:"Times New Roman",serif;line-height:16.96px"><span style="font-size:11pt;font-family:Calibri,sans-serif">Hi llvm-dev,</span></p><p style="margin:0in 0in 8pt;font-size:12pt;font-family:"Times New Roman",serif;line-height:16.96px"><span style="font-size:11pt;font-family:Calibri,sans-serif">I have a patch open for review that removes waymarking<span> </span><a href="https://reviews.llvm.org/D77144" target="_blank">https://reviews.llvm.org/D77144</a>.</span></p><p style="margin:0in 0in 8pt;font-size:12pt;font-family:"Times New Roman",serif;line-height:16.96px"><span style="font-size:11pt;font-family:Calibri,sans-serif">This patch removes waymarking and replaces it with storing a pointer to the User in the Use.<br> when compiling the CTMark tests of the test suite, this give an average of +1.8% max memory use and -1.1% compile time.</span></p><p style="margin:0in 0in 8pt;font-size:12pt;font-family:"Times New Roman",serif;line-height:16.96px"><span style="font-size:11pt;font-family:Calibri,sans-serif">Removing Waymarking also simplifies the code of Use and User.</span></p></div></div></blockquote><br></div><div>Waymarking is very complicated, and I’d be generally +1 on removing it if it is not paying for itself.  It is also nice to see compiler speedups!</div><div><br></div><div>I’m curious about kimwitu++ though - when waymarking initially landed, it was a significant memory size win for that.  Do you have any idea why you’re not seeing the same difference?  Is it possible that different things were being measured back then?</div><div><br></div><div>-Chris</div></div>_______________________________________________<br>
LLVM Developers mailing list<br>
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a><br>
<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank">https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br>
</blockquote></div>