LLVM is a completely modular compiler infrastructure that allows you to build compiler related tools with ease. Simply pick the front-end, optimizations, code generator, or other components that you need for your tool.