<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Historically there was a request to make LLVM_OPTIMIZED_TABLEGEN On by default for debug builds, which I discouraged. At the time it was suggested that workflow was fairly new and untested in a lot of build configurations. Today I believe that situation is slightly better.<div class=""><br class=""></div><div class="">I believe there are still issues with it not working correctly in the Xcode generator, but I know people have used it successfully with Visual Studio.</div><div class=""><br class=""></div><div class="">I think that enabling it by default in Debug builds is probably reasonable for most generators, but anyone looking to make that change should expect some bumps in the road.</div><div class=""><br class=""></div><div class="">-Chris</div><div class=""><div class=""><div class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jan 7, 2019, at 9:03 AM, Paweł Bylica via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class=""><div class="">I believe the issues about Debug config and Visual Studio can be solved by using generator expressions</div><div class=""><pre class="">$<$<CONFIG:Debug>:-O2></pre></div><div class="">or alternatively CMAKE_CXX_CLAGS_DEBUG.</div><div class=""><br class=""></div><div class="">At first we don't have to modify the assertions build option so if Debug config builds with assertions tablegen will be build with as well.</div><div class=""><br class=""></div><div class="">Also we can start with keeping LLVM_OPTIMIZE_TABLEGEN off by default.</div><div class=""><br class=""></div><div class="">If that sounds good, I can come with a prototype later.</div><div class=""><br class=""></div><div class="">// P.<br class=""></div><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Mon, Jan 7, 2019 at 5:54 PM Mehdi AMINI via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class=""><br class=""></div><div class=""><br class=""><div class="gmail_quote"><div dir="ltr" class="">On Mon, Jan 7, 2019 at 8:39 AM <<a href="mailto:paul.robinson@sony.com" target="_blank" class="">paul.robinson@sony.com</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br class="">
<br class="">
> -----Original Message-----<br class="">
> From: llvm-dev [mailto:<a href="mailto:llvm-dev-bounces@lists.llvm.org" target="_blank" class="">llvm-dev-bounces@lists.llvm.org</a>] On Behalf Of Alex<br class="">
> Bradbury via llvm-dev<br class="">
> Sent: Monday, January 07, 2019 11:33 AM<br class="">
> To: Mehdi AMINI<br class="">
> Cc: LLVM Dev<br class="">
> Subject: Re: [llvm-dev] Removing LLVM_ALWAYS_INLINE from ADT classes<br class="">
> <br class="">
> On Sun, 6 Jan 2019 at 00:42, Mehdi AMINI via llvm-dev<br class="">
> <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" class="">llvm-dev@lists.llvm.org</a>> wrote:<br class="">
> ><br class="">
> ><br class="">
> ><br class="">
> > On Fri, Jan 4, 2019 at 3:52 PM Paweł Bylica via llvm-dev <llvm-<br class="">
> <a href="mailto:dev@lists.llvm.org" target="_blank" class="">dev@lists.llvm.org</a>> wrote:<br class="">
> >><br class="">
> >> On Sat, Jan 5, 2019 at 12:38 AM Duncan P. N. Exon Smith via llvm-dev<br class="">
> <<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" class="">llvm-dev@lists.llvm.org</a>> wrote:<br class="">
> >>><br class="">
> >>> This makes sense to me.<br class="">
> >>><br class="">
> >>> One concern is that this in itself will slow down the build, since<br class="">
> tablegen will get even slower.  Ideally, there would be some (perhaps<br class="">
> default?) configuration where we build the tablegen binaries with<br class="">
> optimizations on and then use them in the build, as if we were cross-<br class="">
> compiling.<br class="">
> >><br class="">
> >><br class="">
> >> Maybe something simple like -DLLVM_OPTIMIZE_TABLEGEN=ON (enabled by<br class="">
> default for Debug builds). You would need to set it to off only if you<br class="">
> want to debug tablegen.<br class="">
> ><br class="">
> ><br class="">
> > I proposed this a while back, but it think there were some problems with<br class="">
> it, I don't remember what exactly but maybe related to bootstrapping / 2-<br class="">
> stages builds?<br class="">
> ><br class="">
> > + Chris, maybe he remembers something?<br class="">
> <br class="">
> LLVM_OPTIMIZED_TABLEGEN=ON is a handy way of speeding up build times,<br class="">
> but it really shouldn't be recommended for anyone who is modifying .td<br class="">
> files. You run the risk of making .td modifications that trigger<br class="">
> asserts for those not using LLVM_OPTIMIZED_TABLEGEN.<br class="">
<br class="">
Can we make LLVM_OPTIMIZED_TABLEGEN=ON build it as Release+Asserts?</blockquote><div dir="auto" class=""><br class=""></div><div dir="auto" class="">There is (use to be) some very expensive assertions in llvm-tblgen.</div><div dir="auto" class=""><br class=""></div><div dir="auto" class="">— </div><div dir="auto" class="">Mehdi</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"></blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br class="">
--paulr<br class="">
<br class="">
> <br class="">
> Best,<br class="">
> <br class="">
> Alex<br class="">
> _______________________________________________<br class="">
> LLVM Developers mailing list<br class="">
> <a href="mailto:llvm-dev@lists.llvm.org" target="_blank" class="">llvm-dev@lists.llvm.org</a><br class="">
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br class="">
</blockquote></div></div>
_______________________________________________<br class="">
LLVM Developers mailing list<br class="">
<a href="mailto:llvm-dev@lists.llvm.org" target="_blank" class="">llvm-dev@lists.llvm.org</a><br class="">
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" rel="noreferrer" target="_blank" class="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br class="">
</blockquote></div></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="">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev<br class=""></div></blockquote></div><br class=""></div></div></div></body></html>