Useful options: https://www.llvm.org/docs/CMake.html Use ninja instead of make, it's faster. LLVM_PARALLEL_LINK_JOBS:STRING Define the maximum number of concurrent link jobs. => (Static) link is very memory-intensive, you can't have multiple link jobs in parallel without >32Gb of RAM. This variable helps running "make -j 4" (or ninja, seems to do it by default) but keep only one parallel link. BUILD_SHARED_LIBS:BOOL Flag indicating if each LLVM component (e.g. Support) is built as a shared library (ON) or as a static library (OFF). Its default value is OFF. On Windows, shared libraries may be used when building with MinGW, including mingw-w64, but not when building with the Microsoft toolchain. => Static link is slow, dynamic link is much faster. LLVM_CCACHE_BUILD:BOOL If enabled and the ccache program is available, then LLVM will be built using ccache to speed up rebuilds of LLVM and its components. Defaults to OFF. The size and location of the cache maintained by ccache can be adjusted via the LLVM_CCACHE_MAXSIZE and LLVM_CCACHE_DIR options, which are passed to the CCACHE_MAXSIZE and CCACHE_DIR environment variables, respectively. => Can help to avoid recompiling stuff all the time.