Conversions¶
Internal Conversions¶
-qc-to-qco¶
Convert QC dialect to QCO dialect.
This pass converts all operations from the QC dialect to their equivalent operations in the QCO dialect. It handles the transformation of qubit references in QC to qubit values in QCO, ensuring that the semantics of quantum operations are preserved during the conversion process.
-qco-to-qc¶
Convert QCO dialect to QC dialect.
This pass converts all operations from the QCO dialect to their equivalent operations in the QC dialect. It handles the transformation of qubit values in QCO to qubit references in QC, ensuring that the semantics of quantum operations are preserved during the conversion process.
jeff Conversions¶
-qco-to-jeff¶
Convert QCO operations to jeff operations
This pass converts all operations from the QCO dialect to their equivalent operations in the jeff dialect.
It ensures that the returned module is a valid jeff module that can be serialized.
Note that this pass is still in development as QCO and jeff do not have full feature parity yet.
qco.static is currently converted to jeff.qubit_alloc because jeff does not yet represent static (index-based) qubits; the index is not preserved in jeff IR.
Round-tripping through jeff therefore maps static qubits to dynamic allocation on the QCO side.
-jeff-to-qco¶
Convert jeff operations to QCO operations
This pass converts all operations from the jeff dialect to their equivalent operations in the QCO dialect.
It ensures that the returned module is a valid QCO module.
Note that this pass is still in development as QCO and jeff do not have full feature parity yet.
Known limitations:
Gates with a non-trivial power are currently not supported
Only specific
CustomOps are currently supportedOnly specific
PPROps are currently supportedWhileOpandDoWhileOpare currently not supportedSupport for multiple functions is currently limited