Speed up compilation of CTFE-heavy programs with this One Weird Trick!
Vladimir Panteleev via Digitalmars-d
digitalmars-d at puremagic.com
Wed Nov 2 20:43:06 PDT 2016
For each function that is only called during compilation (e.g.
for code generation), at the top add:
if (!__ctfe)
return;
That's it. For one project, this brought compilation time (with
optimizations) from over an hour down to seconds!
As it turns out, DMD will codegen all functions, even templated
ones when they're instantiated, whether they're called by
something or not. With metaprogramming-heavy code, it's easy to
run into some optimizer performance corner cases, however this
may make an impact regardless.
More information about the Digitalmars-d
mailing list