From 950189da309c246f013bf1219226e39c1fa5e8ac Mon Sep 17 00:00:00 2001 From: Blake Johnson Date: Thu, 21 Dec 2023 09:42:34 -0500 Subject: [PATCH 1/2] Add basic information and notices to README. --- README.md | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 33b117d3a..a0926a127 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 at qe-compiler **target**. This repo comes with a "mock" target to assist developers in understanding how to develop such targets. + +## Notice + +We are in the process of changing the name of this project 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. From 93ee716305460e3fc215102bd26f69ed2197aede Mon Sep 17 00:00:00 2001 From: Blake Johnson Date: Thu, 21 Dec 2023 13:44:13 -0500 Subject: [PATCH 2/2] Apply suggestions from code review Co-authored-by: Thomas Alexander --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a0926a127..eb38a1d61 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,11 @@ 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 at qe-compiler **target**. This repo comes with a "mock" target to assist developers in understanding how to develop such targets. +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 from `qss-compiler` to `qe-compiler`. At present, only the repository name and this README have been updated. +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.