diff --git a/CHANGELOG.md b/CHANGELOG.md index 866af6258c..1d5066991b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ This project adheres to [Semantic Versioning], with the exception that minor rel ### Added - ✨ Add conversions between Jeff and QCO ([#1479]) ([**@denialhaag**]) -- ✨ Add a `place-and-route` pass for mapping circuits to architectures with restricted topologies ([#1537]) ([**@MatthiasReumann**]) +- ✨ Add a `place-and-route` pass for mapping circuits to architectures with restricted topologies ([#1537], [#1547]) ([**@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]) ([**@burgholzer**], [**@denialhaag**], [**@taminob**], [**@DRovara**], [**@li-mingbao**], [**@Ectras**], [**@MatthiasReumann**]) @@ -329,6 +329,7 @@ _📚 Refer to the [GitHub Release Notes](https://github.com/munich-quantum-tool +[#1547]: https://github.com/munich-quantum-toolkit/core/pull/1547 [#1537]: https://github.com/munich-quantum-toolkit/core/pull/1537 [#1521]: https://github.com/munich-quantum-toolkit/core/pull/1521 [#1513]: https://github.com/munich-quantum-toolkit/core/pull/1513 diff --git a/mlir/include/mlir/CMakeLists.txt b/mlir/include/mlir/CMakeLists.txt index 7d688914a2..77927f0c45 100644 --- a/mlir/include/mlir/CMakeLists.txt +++ b/mlir/include/mlir/CMakeLists.txt @@ -8,4 +8,3 @@ add_subdirectory(Conversion) add_subdirectory(Dialect) -add_subdirectory(Passes) diff --git a/mlir/include/mlir/Dialect/QCO/CMakeLists.txt b/mlir/include/mlir/Dialect/QCO/CMakeLists.txt index b181a84fed..3b0a561d0f 100644 --- a/mlir/include/mlir/Dialect/QCO/CMakeLists.txt +++ b/mlir/include/mlir/Dialect/QCO/CMakeLists.txt @@ -7,3 +7,4 @@ # Licensed under the MIT License add_subdirectory(IR) +add_subdirectory(Transforms) diff --git a/mlir/include/mlir/Passes/CMakeLists.txt b/mlir/include/mlir/Dialect/QCO/Transforms/CMakeLists.txt similarity index 73% rename from mlir/include/mlir/Passes/CMakeLists.txt rename to mlir/include/mlir/Dialect/QCO/Transforms/CMakeLists.txt index 9d11c5ca00..292fd15854 100644 --- a/mlir/include/mlir/Passes/CMakeLists.txt +++ b/mlir/include/mlir/Dialect/QCO/Transforms/CMakeLists.txt @@ -8,5 +8,5 @@ set(LLVM_TARGET_DEFINITIONS Passes.td) mlir_tablegen(Passes.h.inc -gen-pass-decls -name QCO) -add_public_tablegen_target(QcoPassesIncGen) -add_mlir_doc(Passes QcoPasses Passes/ -gen-pass-doc) +add_public_tablegen_target(MLIRQCOTransformsIncGen) +add_mlir_doc(Passes MLIRQCOTransforms Passes/ -gen-pass-doc) diff --git a/mlir/include/mlir/Passes/Mapping/Architecture.h b/mlir/include/mlir/Dialect/QCO/Transforms/Mapping/Architecture.h similarity index 100% rename from mlir/include/mlir/Passes/Mapping/Architecture.h rename to mlir/include/mlir/Dialect/QCO/Transforms/Mapping/Architecture.h diff --git a/mlir/include/mlir/Passes/Passes.h b/mlir/include/mlir/Dialect/QCO/Transforms/Passes.h similarity index 82% rename from mlir/include/mlir/Passes/Passes.h rename to mlir/include/mlir/Dialect/QCO/Transforms/Passes.h index db55cc4039..c3589793e6 100644 --- a/mlir/include/mlir/Passes/Passes.h +++ b/mlir/include/mlir/Dialect/QCO/Transforms/Passes.h @@ -19,7 +19,7 @@ namespace mlir::qco { #define GEN_PASS_DECL -#include "mlir/Passes/Passes.h.inc" // IWYU pragma: export +#include "mlir/Dialect/QCO/Transforms/Passes.h.inc" // IWYU pragma: export //===----------------------------------------------------------------------===// // Registration @@ -27,6 +27,6 @@ namespace mlir::qco { /// Generate the code for registering passes. #define GEN_PASS_REGISTRATION -#include "mlir/Passes/Passes.h.inc" // IWYU pragma: export +#include "mlir/Dialect/QCO/Transforms/Passes.h.inc" // IWYU pragma: export } // namespace mlir::qco diff --git a/mlir/include/mlir/Passes/Passes.td b/mlir/include/mlir/Dialect/QCO/Transforms/Passes.td similarity index 100% rename from mlir/include/mlir/Passes/Passes.td rename to mlir/include/mlir/Dialect/QCO/Transforms/Passes.td diff --git a/mlir/lib/CMakeLists.txt b/mlir/lib/CMakeLists.txt index 7f46084b8c..959d80e2f1 100644 --- a/mlir/lib/CMakeLists.txt +++ b/mlir/lib/CMakeLists.txt @@ -9,5 +9,4 @@ add_subdirectory(Conversion) add_subdirectory(Compiler) add_subdirectory(Dialect) -add_subdirectory(Passes) add_subdirectory(Support) diff --git a/mlir/lib/Dialect/QCO/CMakeLists.txt b/mlir/lib/Dialect/QCO/CMakeLists.txt index f31db50cf5..228e9bea23 100644 --- a/mlir/lib/Dialect/QCO/CMakeLists.txt +++ b/mlir/lib/Dialect/QCO/CMakeLists.txt @@ -8,4 +8,5 @@ add_subdirectory(Builder) add_subdirectory(IR) +add_subdirectory(Transforms) add_subdirectory(Utils) diff --git a/mlir/lib/Passes/CMakeLists.txt b/mlir/lib/Dialect/QCO/Transforms/CMakeLists.txt similarity index 73% rename from mlir/lib/Passes/CMakeLists.txt rename to mlir/lib/Dialect/QCO/Transforms/CMakeLists.txt index 92d1494592..b39dfcd93f 100644 --- a/mlir/lib/Passes/CMakeLists.txt +++ b/mlir/lib/Dialect/QCO/Transforms/CMakeLists.txt @@ -11,22 +11,24 @@ file(GLOB_RECURSE PASSES_SOURCES *.cpp) get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) add_mlir_library( - QcoPasses + MLIRQCOTransforms ${PASSES_SOURCES} LINK_LIBS PUBLIC PRIVATE ${dialect_libs} DEPENDS - QcoPassesIncGen) + MLIRQCOTransformsIncGen) # collect header files -file(GLOB_RECURSE PASSES_HEADERS_SOURCE ${MQT_MLIR_SOURCE_INCLUDE_DIR}/mlir/Passes/*.h) -file(GLOB_RECURSE PASSES_HEADERS_BUILD ${MQT_MLIR_BUILD_INCLUDE_DIR}/mlir/Passes/*.inc) +file(GLOB_RECURSE PASSES_HEADERS_SOURCE + ${MQT_MLIR_SOURCE_INCLUDE_DIR}/mlir/Dialect/QCO/Transforms/*.h) +file(GLOB_RECURSE PASSES_HEADERS_BUILD + ${MQT_MLIR_BUILD_INCLUDE_DIR}/mlir/Dialect/QCO/Transforms/*.inc) # add public headers using file sets target_sources( - QcoPasses + MLIRQCOTransforms PUBLIC FILE_SET HEADERS BASE_DIRS diff --git a/mlir/lib/Passes/Mapping/Architecture.cpp b/mlir/lib/Dialect/QCO/Transforms/Mapping/Architecture.cpp similarity index 96% rename from mlir/lib/Passes/Mapping/Architecture.cpp rename to mlir/lib/Dialect/QCO/Transforms/Mapping/Architecture.cpp index 70997b8321..b7d08e3cd4 100644 --- a/mlir/lib/Passes/Mapping/Architecture.cpp +++ b/mlir/lib/Dialect/QCO/Transforms/Mapping/Architecture.cpp @@ -8,7 +8,7 @@ * Licensed under the MIT License */ -#include "mlir/Passes/Mapping/Architecture.h" +#include "mlir/Dialect/QCO/Transforms/Mapping/Architecture.h" #include #include diff --git a/mlir/lib/Passes/Mapping/Mapping.cpp b/mlir/lib/Dialect/QCO/Transforms/Mapping/Mapping.cpp similarity index 99% rename from mlir/lib/Passes/Mapping/Mapping.cpp rename to mlir/lib/Dialect/QCO/Transforms/Mapping/Mapping.cpp index 0720cdbaa8..61108c1094 100644 --- a/mlir/lib/Passes/Mapping/Mapping.cpp +++ b/mlir/lib/Dialect/QCO/Transforms/Mapping/Mapping.cpp @@ -11,9 +11,9 @@ #include "mlir/Dialect/QCO/IR/QCODialect.h" #include "mlir/Dialect/QCO/IR/QCOInterfaces.h" #include "mlir/Dialect/QCO/IR/QCOOps.h" +#include "mlir/Dialect/QCO/Transforms/Mapping/Architecture.h" +#include "mlir/Dialect/QCO/Transforms/Passes.h" #include "mlir/Dialect/QCO/Utils/WireIterator.h" -#include "mlir/Passes/Mapping/Architecture.h" -#include "mlir/Passes/Passes.h" #include #include @@ -49,7 +49,7 @@ namespace mlir::qco { #define GEN_PASS_DEF_MAPPINGPASS -#include "mlir/Passes/Passes.h.inc" +#include "mlir/Dialect/QCO/Transforms/Passes.h.inc" struct MappingPass : impl::MappingPassBase { private: diff --git a/mlir/unittests/CMakeLists.txt b/mlir/unittests/CMakeLists.txt index 962a4a9018..da76b50c37 100644 --- a/mlir/unittests/CMakeLists.txt +++ b/mlir/unittests/CMakeLists.txt @@ -18,4 +18,3 @@ add_subdirectory(programs) add_subdirectory(Compiler) add_subdirectory(Dialect) add_subdirectory(Conversion) -add_subdirectory(Passes) diff --git a/mlir/unittests/Dialect/QCO/CMakeLists.txt b/mlir/unittests/Dialect/QCO/CMakeLists.txt index e4045824ac..7b705e9b19 100644 --- a/mlir/unittests/Dialect/QCO/CMakeLists.txt +++ b/mlir/unittests/Dialect/QCO/CMakeLists.txt @@ -7,4 +7,5 @@ # Licensed under the MIT License add_subdirectory(IR) +add_subdirectory(Transforms) add_subdirectory(Utils) diff --git a/mlir/unittests/Passes/CMakeLists.txt b/mlir/unittests/Dialect/QCO/Transforms/CMakeLists.txt similarity index 100% rename from mlir/unittests/Passes/CMakeLists.txt rename to mlir/unittests/Dialect/QCO/Transforms/CMakeLists.txt diff --git a/mlir/unittests/Passes/Mapping/CMakeLists.txt b/mlir/unittests/Dialect/QCO/Transforms/Mapping/CMakeLists.txt similarity index 69% rename from mlir/unittests/Passes/Mapping/CMakeLists.txt rename to mlir/unittests/Dialect/QCO/Transforms/Mapping/CMakeLists.txt index 39aa3fbcc1..b3e5c4b4d9 100644 --- a/mlir/unittests/Passes/Mapping/CMakeLists.txt +++ b/mlir/unittests/Dialect/QCO/Transforms/Mapping/CMakeLists.txt @@ -9,8 +9,15 @@ set(target_name mqt-core-mlir-unittest-mapping) add_executable(${target_name} test_mapping.cpp) -target_link_libraries(${target_name} PRIVATE MLIRParser GTest::gtest_main MLIRQCProgramBuilder - QCToQCO QCOToQC QcoPasses) +target_link_libraries( + ${target_name} + PRIVATE MLIRParser + GTest::gtest_main + MLIRQCProgramBuilder + MLIRQCOUtils + QCToQCO + QCOToQC + MLIRQCOTransforms) mqt_mlir_configure_unittest_target(${target_name}) diff --git a/mlir/unittests/Passes/Mapping/test_mapping.cpp b/mlir/unittests/Dialect/QCO/Transforms/Mapping/test_mapping.cpp similarity index 98% rename from mlir/unittests/Passes/Mapping/test_mapping.cpp rename to mlir/unittests/Dialect/QCO/Transforms/Mapping/test_mapping.cpp index 858baed5aa..19804d22b0 100644 --- a/mlir/unittests/Passes/Mapping/test_mapping.cpp +++ b/mlir/unittests/Dialect/QCO/Transforms/Mapping/test_mapping.cpp @@ -15,8 +15,8 @@ #include "mlir/Dialect/QC/IR/QCInterfaces.h" #include "mlir/Dialect/QC/IR/QCOps.h" #include "mlir/Dialect/QCO/IR/QCODialect.h" -#include "mlir/Passes/Mapping/Architecture.h" -#include "mlir/Passes/Passes.h" +#include "mlir/Dialect/QCO/Transforms/Mapping/Architecture.h" +#include "mlir/Dialect/QCO/Transforms/Passes.h" #include #include