LLVM 🐉

LLVM is a set of libraries and components, used to build compilers, optimize existing code etc.

The below diagram1 is a good representation:

                          optimizer (opt)
                              _____
                             |     v
     .c file  -->  AST  -->  LLVM IR  -->  assembly
               ^         ^             ^
             parser   lowering      backend
                                     (llc)
    \____________________/  \_____________________/
        Clang Frontend                LLVM

IR

Intermediate Representation (IR) is a low-level programming language that serves as a common representation for code within the LLVM ecosystem.

References