<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"><meta http-equiv="Content-Type" content="text/html charset=utf-8"><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Feb 11, 2016, at 12:43 AM, via llvm-dev <Alexander G. Riccio> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-size:12.8px" class="">I don’t think that we can agree to abstract code guidelines without knowing what it means in practice for the codebase. </span><span style="font-size:12.8px" class="">If you’re interested in this, please include a diff that shows the impact to the headers, and we should also measure what happens to the performance of the generated compiler.</span></blockquote><div class=""><br class=""></div><div class="">I think he's referring to the coding standards there... but I'll assume that you're responding to me. </div><div class=""><br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-size:12.8px" class="">we should also measure what happens to the performance of the generated compiler.</span></blockquote><div class=""><br class=""></div><div class="">I agree, but how do we do that?</div><div class=""><br class=""></div></div></div></blockquote><div class=""><br class=""></div>I suspect that in order to make the policy for all of clang and llvm, you need to experiment with more than the 4 headers from the patch. You would need to measure the performance of the generated compiler on large projects. I’d include LLVM and clang in the set, but maybe more is needed. You should measure the performance of the generated static analyzer on the projects from the static analyzer extended tests suite.</div><div class=""><div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><div dir="ltr" class="">Many LLVM/Clang headers have lots of complex code in headers - I'm specifically looking at the Static Analyzer projects </div></blockquote><div class="">Can you point to the analyzer headers that have "lots of complex code"? We try to move all of the complex implementations into the cpp files. Checkers do not have headers at all.</div><br class=""><blockquote type="cite" class=""><div dir="ltr" class="">(seemingly slowest compile times, biggest hinderance to my productivity)</div></blockquote>Building static analyzer is not slower than building clang. llvm/clang is known for slow compile times. You an search the archive for discussions on how those could be lowered.</div><div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><div dir="ltr" class=""><div class="">See: <a href="http://reviews.llvm.org/D17130" class="">http://reviews.llvm.org/D17130</a> </div></div></blockquote><br class=""></div>Most of the changes in the patch move trivial constructor implementations “{}” out of the headers. There are only a couple that span more than one line of code. These implementations have not changed for months/years so it’s not likely you’ll suffer from rebuilding everything while modifying them.</div><div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><div class=""><div class="gmail_extra"><br clear="all" class=""><div class=""><div class="gmail_signature"><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><span style="font-size:12.8000001907349px" class="">Sincerely,</span><br style="font-size:12.8000001907349px" class=""><span style="font-size:12.8000001907349px" class="">Alexander Riccio</span><br style="font-size:12.8000001907349px" class=""><span style="font-size:12.8000001907349px" class="">--</span><br style="font-size:12.8000001907349px" class=""><span style="font-size:12.8000001907349px" class="">"Change the world or go home."</span><div style="font-size:12.8000001907349px" class=""><a href="http://about.me/ariccio" target="_blank" class="">about.me/ariccio</a></div><div style="font-size:12.8000001907349px" class=""><a href="http://about.me/ariccio" target="_blank" class=""><br class=""></a></div><div style="font-size:12.8000001907349px" class="">If left to my own devices, I will build more.</div><div style="font-size:12.8000001907349px" class="">⁂</div></div></div></div></div></div>
<br class=""><div class="gmail_quote">On Wed, Feb 10, 2016 at 11:05 PM, Chris Lattner <span dir="ltr" class=""><<a href="mailto:clattner@apple.com" target="_blank" class="">clattner@apple.com</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word" class=""><span class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Feb 10, 2016, at 7:34 PM, George Burgess IV via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" class="">llvm-dev@lists.llvm.org</a>> wrote:</div><br class=""><div class=""><div dir="ltr" class=""><div class="">> <span style="font-size:12.8px" class="">Someone should stick it in the coding standards?</span></div><div class=""><br class=""></div>I'm happy to give this a shot.</div></div></blockquote><br class=""></div></span><div class="">My 2c: I don’t think that we can agree to abstract code guidelines without knowing what it means in practice for the codebase.  If you’re interested in this, please include a diff that shows the impact to the headers, and we should also measure what happens to the performance of the generated compiler.</div><span class="HOEnZb"><font color="#888888" class=""><div class=""><br class=""></div><div class="">-Chris</div><br class=""></font></span></div></blockquote></div><br class=""></div>
_______________________________________________<br class="">LLVM Developers mailing list<br class=""><a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a><br class=""><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br class=""></div></blockquote></div><br class=""></body></html>