<div dir="ltr"><div>You can't use C++11 in Clang sources yet. (This patch uses 'nullptr', 'auto', range-based for loops.)<br></div><div><br></div><div class="gmail_extra"><div class="gmail_quote">On Tue, Feb 18, 2014 at 12:03 PM, Will Wilson <span dir="ltr"><<a href="mailto:will@indefiant.com" target="_blank">will@indefiant.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">*ping*</div><div class="gmail_extra"><div><div class="h5"><br><br><div class="gmail_quote">On 10 February 2014 14:59, Will Wilson <span dir="ltr"><<a href="mailto:will@indefiant.com" target="_blank">will@indefiant.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi All,
<div><br></div><div>I've had a crack at implementing lazy loading for late parsed templates (used by MSVCCompat) as I've noticed that they add unnecessary overhead to compilation using large PCHs. This is especially true for small files compiled with large PCH files containing many templated functions - they were all being deserialized but most never got used.</div>


<div><br></div><div>A quick analysis on a file in a large code base shows the AST parsing time time dropping from 0.58s without the change and 0.37s with the change. This is with 699/7333 late parsed templated loaded and parsed from the PCH.</div>
</div></blockquote></div></div></div></div></blockquote><div><br></div><div>The code changes look great, thanks!</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_extra"><div><div class="h5"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>I've added the data structures to the ModuleFile class to follow convention, although I haven't added any new tests as I doubt if anyone's likely to use modules with late template parsing enabled. However, at least the option is there should someone want to use (and test) it with modules in the future. That said, all existing test pass with this patch.</div>
</div></blockquote></div></div></div></div></blockquote><div><br></div><div>Please provide some tests using this functionality.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="gmail_extra"><div><div class="h5"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Formatted and tested patch attached ready for review.</div>
<div><br></div><div>Cheers,</div><div>Will.</div></div>
</blockquote></div><br><br clear="all"><div><br></div></div></div><span class="HOEnZb"><font color="#888888">-- <br><div dir="ltr"><div><span style="color:rgb(68,68,68);font-family:Arial,Helvetica,sans-serif"><b>Indefiant Ltd.</b></span></div>

</div>
</font></span></div>
<br>_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
<br></blockquote></div><br></div></div>