[llvm-dev] Clang Preprocessor Speed Up

mats petersson via llvm-dev llvm-dev at lists.llvm.org
Thu Mar 24 15:59:07 PDT 2016


First, surely the right place for this discussion is the cfe-dev mailing
list?

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.

--
Mats

On 24 March 2016 at 22:17, Andy via llvm-dev <llvm-dev at lists.llvm.org>
wrote:

> Hello, folks!
>
> 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.
>
> 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.
>
> Of course, the typical nesting is rather low, but for example
> BOOST_PP_REPEAT can cause such situations.
>
> So, the question is, what do you think about possible utility of such
> research and the reasons for you think so?
>
> <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>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160324/494c13bb/attachment-0001.html>


More information about the llvm-dev mailing list