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.