<div>Hi Mats,</div><div>š</div><div>Thanks for the reply. Yep, you are right, the time should be measured and I guess I can imagine the typical workflow</div><div><ul><li>implement prototype</li><li>take bunch of big real projects</li><li>compare preprocessing time for initial and changed clang</li><li>make conclusion whether the idea is sane or not</li></ul></div><div>About usage - probably, some IDEs can act better for they need iteratively relex source for correct autocomplete.</div><div>š</div><div>What I'm also curious about is if somebody already did something on this or had thought about it.</div><div>If the idea was already thought (which I guess is rather possible), it's interesting, did somebody already prove it's useless?š</div><div>š</div><div>25.03.2016, 01:59, "mats petersson" <mats@planetcatfish.com>:</div><blockquote type="cite"><div><div><div>First, surely the right place for this discussion is the cfe-dev mailing list?<br /><br /></div>Second, have you determined that this is a noticeable amount of time when compiling? I have no idea - in my Pascal compiler, parsing the code is ~0.1%, codegen to IR ~1.9% and LLVM 98%. But I'm sure Clang is more complex in many ways, so the proportion is probably a bit different - a measurement of the time spent expanding macros would probably help determine if it's worth doing or not. <br /><br />--</div>Mats</div><div><br /><div>On 24 March 2016 at 22:17, Andy via llvm-dev <span><<a href="mailto:llvm-dev@lists.llvm.org" target="_blank">llvm-dev@lists.llvm.org</a>></span> wrote:<br /><blockquote style="margin:0 0 0 0.8ex;border-left:1px #ccc solid;padding-left:1ex;"><div bgcolor="#FFFFFF">Hello, folks!<br /> <br /> Currently me with one other guy are trying to play with clang. The proposal may seem stupid, excuse me, if it was already discussed, we just want to try to implement something useful which seems absent for now.<br /> <br /> Ok, the idea. It seems interesting to try to make lexer a little bit more efficient in terms of macro expanding by applying partial expansion of macros. the idea is that some libraries have rather deeply nested macro definitions, and each time lexer sees it in code, it reexpands definition fully. This seems to be overkill sometimes, for rather often macros are not redefined in code, so expansion can be reused. <br /> <br /> Of course, the typical nesting is rather low, but for example BOOST_PP_REPEAT can cause such situations. <br /> <br /> So, the question is, what do you think about possible utility of such research and the reasons for you think so?<br /> <a href="https://www.google.ru/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0ahUKEwii-ZW4oNrLAhWrCXMKHcFpA1wQFggfMAA&url=http%3A%2F%2Fwww.boost.org%2Fdoc%2Flibs%2F1_43_0%2Flibs%2Fpreprocessor%2Fdoc%2Fref%2Frepeat.html&usg=AFQjCNEicOX9h6Dsd1M82MOjMV5148Rtkg&sig2=p0GM1-YQQGGwaDMHbeHuiA&cad=rja" style="color:#660099;text-decoration:none;" target="_blank"></a></div><br />_______________________________________________<br /> LLVM Developers mailing list<br /> <a href="mailto:llvm-dev@lists.llvm.org">llvm-dev@lists.llvm.org</a><br /> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev</a><br /> </blockquote></div></div></blockquote><div>š</div><div>š</div><div>--š</div><div>Regards,<br /> Andrei Serebro</div><div>tel. +79111758381</div><div>š</div>