# MLIR+QIR as an IR for Quantum-Classical Computing
Here we demonstrate the utility of the QIR and MLIR for enabling the development of compilers for available quantum languages.
Our motivation with this demonstration is to show how MLIR+QIR enable the main feature of a robust IR: mapping multiple languages or programming approaches to multiple backends.
Our examples will be simple GHZ and Bell circuits for NISQ and FTQC execution, respectively.
## Goals
- Demonstrate the utility of the MLIR and QIR for creating compilers and executable code for available quantum languages.
- Demonstrate MLIR as language-level IR for quantum-classical computing (control flow from Standard/Affine, etc.).
- Demonstrate write-once, run-on-any available quantum backend and multiple languages to multiple backends.
- Demonstrate accessibility of MLIR and QIR for available Pythonic circuit construction frameworks.
## NOTES
Poor man's way to count instructions in the LLVM output
- Switch to the Python script to show the audience how all the MLIR/QIR infrastructure just shown can also be generated from Python. Moreover, that Qiskit and Pyquil can also generate MLIR/QIR.
- Note how `qjit` is the QCOR quantum just-in-time compiler, produces executable functions that enable `mlir()` and `llvm()` methods.