qoala-mlir
qoala-mlir is the MLIR-based middle and back end of the Qoala compiler stack. It consumes a Qoala HIR module — emitted by the euqalyptus Python frontend — lowers it through three intermediate representations (qnet → qmem → qoalahost + netqasm + qremote), and emits a textual .iqoala executable that can be run on the Qoala runtime. The build produces two command-line tools, qoala-opt (analyses, optimizations, and lowerings) and qoala-translate (LIR-to-.iqoala translation), together with a qnet Python bindings package that the frontend imports to construct HIR programmatically.
Documentation
The full documentation is published at https://softwarequtech.github.io/qoala-mlir/. It covers installation, the three intermediate representations, the pass pipeline, the per-op and per-pass reference, the Python bindings, and contributor-facing material.
Design and paper
For a deeper account of the compiler's design — the design considerations, the optimization passes (peephole rules, quantum dead-code elimination, MILP-based block reordering), the deadline-estimation MILP, and the static analyses — please refer to the accompanying paper: <PAPER_URL>.
Running the documentation locally
You can serve the documentation site locally with the official squidfunk/mkdocs-material Docker image, without installing MkDocs into your environment. Because the site uses the mkdocstrings[python] plugin to render API documentation from the qnet Python bindings' docstrings, the command below installs the docs-build dependencies (listed in requirements-docs.txt) into the container before serving:
docker run --rm -it -p 8000:8000 -v "$(pwd)":/docs \
--entrypoint sh squidfunk/mkdocs-material:latest \
-c 'pip install --quiet -r requirements-docs.txt && mkdocs serve --dev-addr=0.0.0.0:8000'
Run the command from the repository root. The site is then available at http://localhost:8000, with live reload on every change to docs/, mkdocs.yml, or the docstrings under lib/Python/mlir_qnet/.
Citation
If you use qoala-mlir in academic work, please cite the accompanying paper. A BibTeX entry will be available alongside the paper at the URL above; the placeholder below will be replaced once the paper is published:
<BIBTEX_PLACEHOLDER>
License
qoala-mlir is released under the MIT License (Copyright © 2025 QuTech). See the LICENSE file for the full text.
Metadata
Release files for qoala-mlir 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| qoala_mlir-0.1.0-cp312-cp312-manylinux_2_38_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.38+ x86-64 | Details |
| qoala_mlir-0.1.0-cp311-cp311-manylinux_2_38_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.38+ x86-64 | Details |
| qoala_mlir-0.1.0-cp310-cp310-manylinux_2_38_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.38+ x86-64 | Details |
Total release size: 235.0 MB
Release files / qoala_mlir-0.1.0-cp312-cp312-manylinux_2_38_x86_64.whl
| Download URL | qoala_mlir-0.1.0-cp312-cp312-manylinux_2_38_x86_64.whl |
|---|---|
| Size | 78.3 MB |
| Tags | CPython 3.12 Linux glibc 2.38+ x86-64 |
|
SHA-256 checksum How to use checksums |
6afa25d793e962a1daad58421fa08d857ac50bf8756b5ac0da8782d1c8864018
|
|
BLAKE2b-256 checksum How to use checksums |
f599e7d4404b41e96a064dfc2dd2175446944040677d125e0b9c650b9fe5dc21
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 29, 2026.
Transparency logRelease files / qoala_mlir-0.1.0-cp311-cp311-manylinux_2_38_x86_64.whl
| Download URL | qoala_mlir-0.1.0-cp311-cp311-manylinux_2_38_x86_64.whl |
|---|---|
| Size | 78.3 MB |
| Tags | CPython 3.11 Linux glibc 2.38+ x86-64 |
|
SHA-256 checksum How to use checksums |
301c35b5dc223057d3acb4f531259daf7f17a5be54a5336275851b44e95a59e0
|
|
BLAKE2b-256 checksum How to use checksums |
f7b373164e93c395e1f517e7520a268782543438ab93793be6c3b8578247ee3c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 29, 2026.
Transparency logRelease files / qoala_mlir-0.1.0-cp310-cp310-manylinux_2_38_x86_64.whl
| Download URL | qoala_mlir-0.1.0-cp310-cp310-manylinux_2_38_x86_64.whl |
|---|---|
| Size | 78.3 MB |
| Tags | CPython 3.10 Linux glibc 2.38+ x86-64 |
|
SHA-256 checksum How to use checksums |
b5b2bba720eb1e1df6dae385df1a9deb75bb4043eabfdc7fa22efe5860a9a63d
|
|
BLAKE2b-256 checksum How to use checksums |
d516b6e603f97427943306996cc2c13e3264abc9408a06875d0c155c3f3c03e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 29, 2026.
Transparency log