diff --git a/CHANGELOG.md b/CHANGELOG.md index e741cfd122..0de707dd37 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,7 +15,7 @@ This project adheres to [Semantic Versioning], with the exception that minor rel - ✨ Add conversions between Jeff and QCO ([#1479], [#1548], [#1565]) ([**@denialhaag**]) - ✨ Add a `place-and-route` pass for mapping circuits to architectures with restricted topologies ([#1537], [#1547], [#1568]) ([**@MatthiasReumann**]) - ✨ Add initial infrastructure for new QC and QCO MLIR dialects - ([#1264], [#1330], [#1402], [#1428], [#1430], [#1436], [#1443], [#1446], [#1464], [#1465], [#1470], [#1471], [#1472], [#1474], [#1475], [#1506], [#1510], [#1513], [#1521], [#1548], [#1550], [#1554]) + ([#1264], [#1330], [#1402], [#1428], [#1430], [#1436], [#1443], [#1446], [#1464], [#1465], [#1470], [#1471], [#1472], [#1474], [#1475], [#1506], [#1510], [#1513], [#1521], [#1548], [#1550], [#1554], [#1570]) ([**@burgholzer**], [**@denialhaag**], [**@taminob**], [**@DRovara**], [**@li-mingbao**], [**@Ectras**], [**@MatthiasReumann**], [**@simon1hofmann**]) ### Changed @@ -333,6 +333,7 @@ _📚 Refer to the [GitHub Release Notes](https://github.com/munich-quantum-tool [#1571]: https://github.com/munich-quantum-toolkit/core/pull/1571 +[#1570]: https://github.com/munich-quantum-toolkit/core/pull/1570 [#1568]: https://github.com/munich-quantum-toolkit/core/pull/1568 [#1565]: https://github.com/munich-quantum-toolkit/core/pull/1565 [#1554]: https://github.com/munich-quantum-toolkit/core/pull/1554 diff --git a/docs/mlir/Conversions.md b/docs/mlir/Conversions.md index 654e78d8cd..9266a99624 100644 --- a/docs/mlir/Conversions.md +++ b/docs/mlir/Conversions.md @@ -2,26 +2,26 @@ ## Internal Conversions -```{include} Conversions/MLIRQCToQCO.md +```{include} Conversions/QCToQCO.md ``` -```{include} Conversions/MLIRQCOToQC.md +```{include} Conversions/QCOToQC.md ``` ## Jeff Conversions -```{include} Conversions/MLIRQCOToJeff.md +```{include} Conversions/QCOToJeff.md ``` -```{include} Conversions/MLIRJeffToQCO.md +```{include} Conversions/JeffToQCO.md ``` ## QIR Conversions -```{include} Conversions/MLIRQCToQIR.md +```{include} Conversions/QCToQIR.md ``` diff --git a/docs/mlir/QC.md b/docs/mlir/QC.md index 4bc93432fa..46ee7eebf4 100644 --- a/docs/mlir/QC.md +++ b/docs/mlir/QC.md @@ -2,10 +2,10 @@ tocdepth: 3 --- -```{include} Dialects/MLIRQCDialect.md +```{include} Dialects/QCDialect.md ``` -```{include} Dialects/MLIRQCInterfaces.md +```{include} Dialects/QCInterfaces.md :heading-offset: 1 ``` diff --git a/docs/mlir/QCO.md b/docs/mlir/QCO.md index 5492aae0eb..0c40090c96 100644 --- a/docs/mlir/QCO.md +++ b/docs/mlir/QCO.md @@ -2,16 +2,16 @@ tocdepth: 3 --- -```{include} Dialects/MLIRQCODialect.md +```{include} Dialects/QCODialect.md ``` -```{include} Dialects/MLIRQCOInterfaces.md +```{include} Dialects/QCOInterfaces.md :heading-offset: 1 ``` ## Passes -```{include} Passes/MLIRQCOTransforms.md +```{include} Passes/QCOTransforms.md ``` diff --git a/mlir/include/mlir/Conversion/JeffToQCO/CMakeLists.txt b/mlir/include/mlir/Conversion/JeffToQCO/CMakeLists.txt index 331cffdd74..0b8c269898 100644 --- a/mlir/include/mlir/Conversion/JeffToQCO/CMakeLists.txt +++ b/mlir/include/mlir/Conversion/JeffToQCO/CMakeLists.txt @@ -10,4 +10,4 @@ set(LLVM_TARGET_DEFINITIONS JeffToQCO.td) mlir_tablegen(JeffToQCO.h.inc -gen-pass-decls -name JeffToQCO) add_public_tablegen_target(JeffToQCOIncGen) -add_mlir_doc(JeffToQCO MLIRJeffToQCO Conversions/ -gen-pass-doc) +add_mlir_doc(JeffToQCO JeffToQCO Conversions/ -gen-pass-doc) diff --git a/mlir/include/mlir/Conversion/QCOToJeff/CMakeLists.txt b/mlir/include/mlir/Conversion/QCOToJeff/CMakeLists.txt index 8d5526571c..7e64950200 100644 --- a/mlir/include/mlir/Conversion/QCOToJeff/CMakeLists.txt +++ b/mlir/include/mlir/Conversion/QCOToJeff/CMakeLists.txt @@ -10,4 +10,4 @@ set(LLVM_TARGET_DEFINITIONS QCOToJeff.td) mlir_tablegen(QCOToJeff.h.inc -gen-pass-decls -name QCOToJeff) add_public_tablegen_target(QCOToJeffIncGen) -add_mlir_doc(QCOToJeff MLIRQCOToJeff Conversions/ -gen-pass-doc) +add_mlir_doc(QCOToJeff QCOToJeff Conversions/ -gen-pass-doc) diff --git a/mlir/include/mlir/Conversion/QCOToQC/CMakeLists.txt b/mlir/include/mlir/Conversion/QCOToQC/CMakeLists.txt index b6ac9ae4b4..ce9f5742ae 100644 --- a/mlir/include/mlir/Conversion/QCOToQC/CMakeLists.txt +++ b/mlir/include/mlir/Conversion/QCOToQC/CMakeLists.txt @@ -10,4 +10,4 @@ set(LLVM_TARGET_DEFINITIONS QCOToQC.td) mlir_tablegen(QCOToQC.h.inc -gen-pass-decls -name QCOToQC) add_public_tablegen_target(QCOToQCIncGen) -add_mlir_doc(QCOToQC MLIRQCOToQC Conversions/ -gen-pass-doc) +add_mlir_doc(QCOToQC QCOToQC Conversions/ -gen-pass-doc) diff --git a/mlir/include/mlir/Conversion/QCToQCO/CMakeLists.txt b/mlir/include/mlir/Conversion/QCToQCO/CMakeLists.txt index cf412d6ca2..61c1900fba 100644 --- a/mlir/include/mlir/Conversion/QCToQCO/CMakeLists.txt +++ b/mlir/include/mlir/Conversion/QCToQCO/CMakeLists.txt @@ -10,4 +10,4 @@ set(LLVM_TARGET_DEFINITIONS QCToQCO.td) mlir_tablegen(QCToQCO.h.inc -gen-pass-decls -name QCToQCO) add_public_tablegen_target(QCToQCOIncGen) -add_mlir_doc(QCToQCO MLIRQCToQCO Conversions/ -gen-pass-doc) +add_mlir_doc(QCToQCO QCToQCO Conversions/ -gen-pass-doc) diff --git a/mlir/include/mlir/Conversion/QCToQIR/CMakeLists.txt b/mlir/include/mlir/Conversion/QCToQIR/CMakeLists.txt index c575fb5b25..6c40fccf91 100644 --- a/mlir/include/mlir/Conversion/QCToQIR/CMakeLists.txt +++ b/mlir/include/mlir/Conversion/QCToQIR/CMakeLists.txt @@ -10,4 +10,4 @@ set(LLVM_TARGET_DEFINITIONS QCToQIR.td) mlir_tablegen(QCToQIR.h.inc -gen-pass-decls -name QCToQIR) add_public_tablegen_target(QCToQIRIncGen) -add_mlir_doc(QCToQIR MLIRQCToQIR Conversions/ -gen-pass-doc) +add_mlir_doc(QCToQIR QCToQIR Conversions/ -gen-pass-doc) diff --git a/mlir/include/mlir/Dialect/QC/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/QC/IR/CMakeLists.txt index 28f93b923a..afbb8efc19 100644 --- a/mlir/include/mlir/Dialect/QC/IR/CMakeLists.txt +++ b/mlir/include/mlir/Dialect/QC/IR/CMakeLists.txt @@ -8,5 +8,6 @@ add_mlir_dialect(QCOps qc) add_mlir_interface(QCInterfaces) -add_mlir_doc(QCOps MLIRQCDialect Dialects/ -gen-dialect-doc) -add_mlir_doc(QCInterfaces MLIRQCInterfaces Dialects/ -gen-op-interface-docs -dialect=qc) + +add_mlir_doc(QCOps QCDialect Dialects/ -gen-dialect-doc) +add_mlir_doc(QCInterfaces QCInterfaces Dialects/ -gen-op-interface-docs -dialect=qc) diff --git a/mlir/include/mlir/Dialect/QC/IR/QCDialect.td b/mlir/include/mlir/Dialect/QC/IR/QCDialect.td new file mode 100644 index 0000000000..bb3c95af1f --- /dev/null +++ b/mlir/include/mlir/Dialect/QC/IR/QCDialect.td @@ -0,0 +1,43 @@ +// Copyright (c) 2023 - 2026 Chair for Design Automation, TUM +// Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH +// All rights reserved. +// +// SPDX-License-Identifier: MIT +// +// Licensed under the MIT License + +#ifndef MLIR_DIALECT_QC_IR_QCDIALECT_TD +#define MLIR_DIALECT_QC_IR_QCDIALECT_TD + +include "mlir/IR/DialectBase.td" + +def QCDialect : Dialect { + let name = "qc"; + + let summary = "The QC (reference semantics) dialect for quantum computing."; + + let description = [{ + The QC dialect uses **reference semantics** where quantum operations + modify qubits in place, similar to how hardware physically transforms + quantum states. This model provides: + + - Natural mapping to hardware execution models + - Intuitive representation for circuit descriptions + - Direct compatibility with imperative quantum programming languages + - Straightforward backend code generation + + The name "QC" stands for "Quantum Circuit." + + Example: + ```mlir + qc.h %q // Applies Hadamard to qubit %q in place + qc.swap %q0, %q1 // Applies SWAP using %q0, %q1 as targets + ``` + }]; + + let cppNamespace = "::mlir::qc"; + + let useDefaultTypePrinterParser = 1; +} + +#endif // MLIR_DIALECT_QC_IR_QCDIALECT_TD diff --git a/mlir/include/mlir/Dialect/QC/IR/QCInterfaces.td b/mlir/include/mlir/Dialect/QC/IR/QCInterfaces.td index 9e805b9c9b..7d2c86c3dd 100644 --- a/mlir/include/mlir/Dialect/QC/IR/QCInterfaces.td +++ b/mlir/include/mlir/Dialect/QC/IR/QCInterfaces.td @@ -6,8 +6,8 @@ // // Licensed under the MIT License -#ifndef QC_INTERFACES -#define QC_INTERFACES +#ifndef MLIR_DIALECT_QC_IR_QCINTERFACES_TD +#define MLIR_DIALECT_QC_IR_QCINTERFACES_TD include "mlir/IR/OpBase.td" @@ -89,4 +89,4 @@ def UnitaryOpInterface : OpInterface<"UnitaryOpInterface"> { ]; } -#endif // QC_INTERFACES +#endif // MLIR_DIALECT_QC_IR_QCINTERFACES_TD diff --git a/mlir/include/mlir/Dialect/QC/IR/QCOps.td b/mlir/include/mlir/Dialect/QC/IR/QCOps.td index 5956e39a56..8093095868 100644 --- a/mlir/include/mlir/Dialect/QC/IR/QCOps.td +++ b/mlir/include/mlir/Dialect/QC/IR/QCOps.td @@ -6,70 +6,19 @@ // // Licensed under the MIT License -#ifndef QC_OPS -#define QC_OPS +#ifndef MLIR_DIALECT_QC_IR_QCOPS_TD +#define MLIR_DIALECT_QC_IR_QCOPS_TD +include "mlir/Dialect/QC/IR/QCDialect.td" include "mlir/Dialect/QC/IR/QCInterfaces.td" -include "mlir/IR/BuiltinTypeInterfaces.td" -include "mlir/IR/DialectBase.td" +include "mlir/Dialect/QC/IR/QCTypes.td" + include "mlir/IR/EnumAttr.td" include "mlir/IR/OpBase.td" include "mlir/IR/RegionKindInterface.td" include "mlir/Interfaces/InferTypeOpInterface.td" include "mlir/Interfaces/SideEffectInterfaces.td" -//===----------------------------------------------------------------------===// -// QC Dialect Definition -//===----------------------------------------------------------------------===// - -def QCDialect : Dialect { - let name = "qc"; - - let summary = "The QC (reference semantics) dialect for quantum computing."; - - let description = [{ - The QC dialect uses **reference semantics** where quantum operations - modify qubits in place, similar to how hardware physically transforms - quantum states. This model provides: - - - Natural mapping to hardware execution models - - Intuitive representation for circuit descriptions - - Direct compatibility with imperative quantum programming languages - - Straightforward backend code generation - - The name "QC" stands for "Quantum Circuit." - - Example: - ```mlir - qc.h %q // Applies Hadamard to qubit %q in place - qc.swap %q0, %q1 // Applies SWAP using %q0, %q1 as targets - ``` - }]; - - let cppNamespace = "::mlir::qc"; - - let useDefaultTypePrinterParser = 1; -} - -//===----------------------------------------------------------------------===// -// QC Type Definitions -//===----------------------------------------------------------------------===// - -class QCType traits = []> - : TypeDef { - let mnemonic = typeMnemonic; -} - -def QubitType : QCType<"Qubit", "qubit"> { - let summary = "QC qubit reference type"; - let description = [{ - The `!qc.qubit` type represents a reference to a quantum bit in the - QC dialect. Operations using this type modify qubits in place using - reference semantics, similar to how classical imperative languages handle - mutable references. - }]; -} - //===----------------------------------------------------------------------===// // Base Operation Classes //===----------------------------------------------------------------------===// @@ -1015,4 +964,4 @@ def InvOp : QCOp<"inv", let hasVerifier = 1; } -#endif // QC_OPS +#endif // MLIR_DIALECT_QC_IR_QCOPS_TD diff --git a/mlir/include/mlir/Dialect/QC/IR/QCTypes.td b/mlir/include/mlir/Dialect/QC/IR/QCTypes.td new file mode 100644 index 0000000000..db830ad3ca --- /dev/null +++ b/mlir/include/mlir/Dialect/QC/IR/QCTypes.td @@ -0,0 +1,31 @@ +// Copyright (c) 2023 - 2026 Chair for Design Automation, TUM +// Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH +// All rights reserved. +// +// SPDX-License-Identifier: MIT +// +// Licensed under the MIT License + +#ifndef MLIR_DIALECT_QC_IR_QCTYPES_TD +#define MLIR_DIALECT_QC_IR_QCTYPES_TD + +include "mlir/Dialect/QC/IR/QCDialect.td" + +include "mlir/IR/AttrTypeBase.td" + +class QCType traits = []> + : TypeDef { + let mnemonic = typeMnemonic; +} + +def QubitType : QCType<"Qubit", "qubit"> { + let summary = "QC qubit reference type"; + let description = [{ + The `!qc.qubit` type represents a reference to a quantum bit in the + QC dialect. Operations using this type modify qubits in place using + reference semantics, similar to how classical imperative languages handle + mutable references. + }]; +} + +#endif // MLIR_DIALECT_QC_IR_QCTYPES_TD diff --git a/mlir/include/mlir/Dialect/QCO/IR/CMakeLists.txt b/mlir/include/mlir/Dialect/QCO/IR/CMakeLists.txt index 220c177b86..f5368621d1 100644 --- a/mlir/include/mlir/Dialect/QCO/IR/CMakeLists.txt +++ b/mlir/include/mlir/Dialect/QCO/IR/CMakeLists.txt @@ -8,5 +8,6 @@ add_mlir_dialect(QCOOps qco) add_mlir_interface(QCOInterfaces) -add_mlir_doc(QCOOps MLIRQCODialect Dialects/ -gen-dialect-doc) -add_mlir_doc(QCOInterfaces MLIRQCOInterfaces Dialects/ -gen-op-interface-docs -dialect=qco) + +add_mlir_doc(QCOOps QCODialect Dialects/ -gen-dialect-doc) +add_mlir_doc(QCOInterfaces QCOInterfaces Dialects/ -gen-op-interface-docs -dialect=qco) diff --git a/mlir/include/mlir/Dialect/QCO/IR/QCODialect.td b/mlir/include/mlir/Dialect/QCO/IR/QCODialect.td new file mode 100644 index 0000000000..a9f98d432a --- /dev/null +++ b/mlir/include/mlir/Dialect/QCO/IR/QCODialect.td @@ -0,0 +1,43 @@ +// Copyright (c) 2023 - 2026 Chair for Design Automation, TUM +// Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH +// All rights reserved. +// +// SPDX-License-Identifier: MIT +// +// Licensed under the MIT License + +#ifndef MLIR_DIALECT_QCO_IR_QCODIALECT_TD +#define MLIR_DIALECT_QCO_IR_QCODIALECT_TD + +include "mlir/IR/DialectBase.td" + +def QCODialect : Dialect { + let name = "qco"; + + let summary = "The QCO (value semantics) dialect for quantum computing."; + + let description = [{ + The QCO dialect uses **value semantics** where quantum operations + consume input qubits and produce new output values, following the + functional programming and SSA paradigm. This model enables: + + - Powerful compiler optimizations through clear dataflow + - Safe reordering and parallelization analysis + - Advanced transformation passes + - Explicit dependency tracking + + The name "QCO" stands for "Quantum Circuit Optimization." + + Example: + ```mlir + %q_out = qco.h %q_in // Consumes %q_in, produces %q_out + %q0_out, %q1_out = qco.swap %q0_in, %q1_in // Consumes inputs, produces outputs + ``` + }]; + + let cppNamespace = "::mlir::qco"; + + let useDefaultTypePrinterParser = 1; +} + +#endif // MLIR_DIALECT_QCO_IR_QCODIALECT_TD diff --git a/mlir/include/mlir/Dialect/QCO/IR/QCOInterfaces.td b/mlir/include/mlir/Dialect/QCO/IR/QCOInterfaces.td index 8bf0025f96..22dc396c6b 100644 --- a/mlir/include/mlir/Dialect/QCO/IR/QCOInterfaces.td +++ b/mlir/include/mlir/Dialect/QCO/IR/QCOInterfaces.td @@ -6,8 +6,8 @@ // // Licensed under the MIT License -#ifndef QCO_INTERFACES -#define QCO_INTERFACES +#ifndef MLIR_DIALECT_QCO_IR_QCOINTERFACES_TD +#define MLIR_DIALECT_QCO_IR_QCOINTERFACES_TD include "mlir/IR/OpBase.td" @@ -240,4 +240,4 @@ def UnitaryOpInterface : OpInterface<"UnitaryOpInterface"> { }]; } -#endif // QCO_INTERFACES +#endif // MLIR_DIALECT_QCO_IR_QCOINTERFACES_TD diff --git a/mlir/include/mlir/Dialect/QCO/IR/QCOOps.td b/mlir/include/mlir/Dialect/QCO/IR/QCOOps.td index 56519eb161..b5b82127f7 100644 --- a/mlir/include/mlir/Dialect/QCO/IR/QCOOps.td +++ b/mlir/include/mlir/Dialect/QCO/IR/QCOOps.td @@ -6,77 +6,19 @@ // // Licensed under the MIT License -#ifndef QCOOPS -#define QCOOPS +#ifndef MLIR_DIALECT_QCO_IR_QCOOPS_TD +#define MLIR_DIALECT_QCO_IR_QCOOPS_TD +include "mlir/Dialect/QCO/IR/QCODialect.td" include "mlir/Dialect/QCO/IR/QCOInterfaces.td" -include "mlir/IR/BuiltinTypeInterfaces.td" -include "mlir/IR/DialectBase.td" +include "mlir/Dialect/QCO/IR/QCOTypes.td" + include "mlir/IR/EnumAttr.td" include "mlir/IR/OpBase.td" include "mlir/Interfaces/ControlFlowInterfaces.td" include "mlir/Interfaces/InferTypeOpInterface.td" include "mlir/Interfaces/SideEffectInterfaces.td" -//===----------------------------------------------------------------------===// -// Dialect -//===----------------------------------------------------------------------===// - -def QCODialect : Dialect { - let name = "qco"; - - let summary = "The QCO (value semantics) dialect for quantum computing."; - - let description = [{ - The QCO dialect uses **value semantics** where quantum operations - consume input qubits and produce new output values, following the - functional programming and SSA paradigm. This model enables: - - - Powerful compiler optimizations through clear dataflow - - Safe reordering and parallelization analysis - - Advanced transformation passes - - Explicit dependency tracking - - The name "QCO" stands for "Quantum Circuit Optimization." - - Example: - ```mlir - %q_out = qco.h %q_in // Consumes %q_in, produces %q_out - %q0_out, %q1_out = qco.swap %q0_in, %q1_in // Consumes inputs, produces outputs - ``` - }]; - - let cppNamespace = "::mlir::qco"; - - let useDefaultTypePrinterParser = 1; -} - -//===----------------------------------------------------------------------===// -// QCO Type Definitions -//===----------------------------------------------------------------------===// - -class QCOType traits = []> - : TypeDef { - let mnemonic = typeMnemonic; -} - -def QubitType : QCOType<"Qubit", "qubit"> { - let summary = "QCO qubit value type"; - let description = [{ - The `!qco.qubit` type represents an SSA value holding a quantum bit - in the QCO dialect. Operations using this type consume input qubits - and produce new output qubits following value semantics and the SSA - paradigm, enabling powerful dataflow analysis and optimization. - - Example: - ```mlir - %q0 = qco.alloc : !qco.qubit - %q1 = qco.h %q0 : !qco.qubit -> !qco.qubit - %q2 = qco.x %q1 : !qco.qubit -> !qco.qubit - ``` - }]; -} - //===----------------------------------------------------------------------===// // Base Operation Classes //===----------------------------------------------------------------------===// @@ -1287,4 +1229,4 @@ def IfOp : QCOOp<"if", traits = let hasVerifier = 1; } -#endif // QCOOPS +#endif // MLIR_DIALECT_QCO_IR_QCOOPS_TD diff --git a/mlir/include/mlir/Dialect/QCO/IR/QCOTypes.td b/mlir/include/mlir/Dialect/QCO/IR/QCOTypes.td new file mode 100644 index 0000000000..120fe0e54a --- /dev/null +++ b/mlir/include/mlir/Dialect/QCO/IR/QCOTypes.td @@ -0,0 +1,38 @@ +// Copyright (c) 2023 - 2026 Chair for Design Automation, TUM +// Copyright (c) 2025 - 2026 Munich Quantum Software Company GmbH +// All rights reserved. +// +// SPDX-License-Identifier: MIT +// +// Licensed under the MIT License + +#ifndef MLIR_DIALECT_QCO_IR_QCOTYPES_TD +#define MLIR_DIALECT_QCO_IR_QCOTYPES_TD + +include "mlir/Dialect/QCO/IR/QCODialect.td" + +include "mlir/IR/AttrTypeBase.td" + +class QCOType traits = []> + : TypeDef { + let mnemonic = typeMnemonic; +} + +def QubitType : QCOType<"Qubit", "qubit"> { + let summary = "QCO qubit value type"; + let description = [{ + The `!qco.qubit` type represents an SSA value holding a quantum bit + in the QCO dialect. Operations using this type consume input qubits + and produce new output qubits following value semantics and the SSA + paradigm, enabling powerful dataflow analysis and optimization. + + Example: + ```mlir + %q0 = qco.alloc : !qco.qubit + %q1 = qco.h %q0 : !qco.qubit -> !qco.qubit + %q2 = qco.x %q1 : !qco.qubit -> !qco.qubit + ``` + }]; +} + +#endif // MLIR_DIALECT_QCO_IR_QCOTYPES_TD diff --git a/mlir/include/mlir/Dialect/QCO/Transforms/CMakeLists.txt b/mlir/include/mlir/Dialect/QCO/Transforms/CMakeLists.txt index 292fd15854..588ada5500 100644 --- a/mlir/include/mlir/Dialect/QCO/Transforms/CMakeLists.txt +++ b/mlir/include/mlir/Dialect/QCO/Transforms/CMakeLists.txt @@ -9,4 +9,5 @@ set(LLVM_TARGET_DEFINITIONS Passes.td) mlir_tablegen(Passes.h.inc -gen-pass-decls -name QCO) add_public_tablegen_target(MLIRQCOTransformsIncGen) -add_mlir_doc(Passes MLIRQCOTransforms Passes/ -gen-pass-doc) + +add_mlir_doc(Passes QCOTransforms Passes/ -gen-pass-doc) diff --git a/mlir/include/mlir/Dialect/QCO/Transforms/Passes.td b/mlir/include/mlir/Dialect/QCO/Transforms/Passes.td index 9303bf4017..9b5942049a 100644 --- a/mlir/include/mlir/Dialect/QCO/Transforms/Passes.td +++ b/mlir/include/mlir/Dialect/QCO/Transforms/Passes.td @@ -6,8 +6,8 @@ // // Licensed under the MIT License -#ifndef QCO_PASSES -#define QCO_PASSES +#ifndef MLIR_DIALECT_QCO_TRANSFORMS_PASSES_TD +#define MLIR_DIALECT_QCO_TRANSFORMS_PASSES_TD include "mlir/Pass/PassBase.td" @@ -69,4 +69,4 @@ def MappingPass : Pass<"place-and-route", "mlir::ModuleOp"> { ]; } -#endif // QCO_PASSES +#endif // MLIR_DIALECT_QCO_TRANSFORMS_PASSES_TD