LLVM has a novel lifelong compilation model, which allows program analysis and transformation through-out the lifetime of the program (compile-time, link-time, install-time, run-time, offline) without requiring special makefiles.