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