diff --git a/README.md b/README.md index 33b117d3a..eb38a1d61 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,22 @@ -# qss-compiler: An MLIR based quantum compiler for control systems +# qe-compiler: An MLIR-based quantum compiler for quantum engines -The qss-compiler is an MLIR based quantum control system compiler with support for OpenQASM 3. It is designed to compile quantum programs to real quantum hardware and is designed as part the overall Quantum Engine. +The qe-compiler is an [MLIR](https://mlir.llvm.org/)-based compiler with support for OpenQASM 3. It is designed to compile quantum programs to quantum hardware and is designed as part of the overall Quantum Engine. This repo contains the compiler front-end to convert OpenQASM 3 source files into a collection of four MLIR dialects called QUIR (QUantum Intermediate Representation), OQ3 (OpenQASM 3), Pulse (OpenPulse), and QCS (Quantum Computing System). This set of dialects allows OpenQASM programs to be converted into a form suitable to manipulate with LLVM. This repo also contains tools and compiler passes that are agnostic of details of any control system vendor. For instance, it contains localization passes to split source programs into the qubit or channel-specific groupings required by a target quantum control system. + +This repo does not contain a complete compiler. Rather, it is a framework for building compilers. To produce a complete compiler, one needs to implement a qe-compiler **target**. This repo comes with a ["mock" target](https://github.com/Qiskit/qss-compiler/tree/main/targets/systems/mock) to assist developers in understanding how to develop such targets. + +## Notice + +We are in the process of [changing the name of this project](https://github.com/Qiskit/qss-compiler/issues/210) from `qss-compiler` to `qe-compiler`. At present, only the repository name and this README have been updated. + +This open-source version of the qe-compiler is currently lacking documentation. We will add getting started guides and other resources in the near future. ## Building We use [Conan](https://docs.conan.io/en/1.59/index.html) to build the compiler and handle dependencies. To build: -1. `git clone git@github.com:Qiskit/qss-compiler.git && cd qss-compiler` +1. `git clone git@github.com:Qiskit/qe-compiler.git && cd qe-compiler` 2. Install Python dependencies: `pip install -r requirements-dev.txt` 3. Export local Conan recipe dependencies to Conan: `./conan_deps.sh` 4. `mkdir build && cd build` @@ -28,3 +36,11 @@ installing with conan. To disable add the option `conan build .. -o pythonlib=Fa ### Platforms #### Windows Building and running the compiler is supported with [WSL](https://learn.microsoft.com/en-us/windows/wsl/install). + +## Example Use + +You can inspect the options available when invoking the `qe-compiler` by passing the `-h` flag. There are **many** options. A basic invocation that will work without implementing a target will convert an OpenQASM source file, `example.qasm` to the MLIR dialect set described above with: +`qss-compiler --emit=mlir example.qasm` + +## License +The qe-compiler is [licensed](LICENSE.txt) under the Apache License v2 with LLVM Exceptions.