Intermediate Representation process splits the compilation process into 2 parts 1. User language compiler to IR 2. Hardware-specific compiler takes the IR and converts that into a set of machine-level instructions that the computer can understand This means the **hardware specific compiler **can work with many different source languages and still give machine adequate instructions that it can comprehend Quantum Programming Language Developers only compile their new languages to one IR representation to run many different machines. Allows innovation on both sides of the equation while avoiding duplication of effort. LLVM is a collection of compiler and toolchain technologies that are designed around a language-independent intermediate representation. This common platform allows many source languages to share optimizers and executable generators, which enables a large amount of re-use in compiler machinery.