Low Level Virtual Machine(LLVM) is an open source compiler infrastructure that contains a set of tools for building compilers, debuggers and other software development tools. It has a backend translate high level code into intermediate representation(IR) and a backend to translate the IR into machine code, for any target architecture.