Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
dce8b93
Add dispatch function
MatthiasReumann Jul 6, 2026
0b99302
Implement qco::ifOp extend operation
MatthiasReumann Jul 6, 2026
c3d2b1b
Implement simple test
MatthiasReumann Jul 6, 2026
062b3e6
Implement restoration logic for qco::IfOp
MatthiasReumann Jul 6, 2026
e8cc389
Implement converge logic
MatthiasReumann Jul 6, 2026
a07875c
Add dispatch function
MatthiasReumann Jul 6, 2026
7c18fa4
Implement qco::ifOp extend operation
MatthiasReumann Jul 6, 2026
390ccb5
Implement simple test
MatthiasReumann Jul 6, 2026
7e1084b
Implement restoration logic for qco::IfOp
MatthiasReumann Jul 6, 2026
079e0dd
Implement converge logic
MatthiasReumann Jul 6, 2026
684ec1f
Add FGraph datastructure
MatthiasReumann Jul 8, 2026
8e87203
Final touches
MatthiasReumann Jul 8, 2026
3c2bc23
Merge branch 'enh/sc-map-scf-if-stmt' of https://github.com/munich-qu…
MatthiasReumann Jul 8, 2026
153cedd
Remove debug include
MatthiasReumann Jul 8, 2026
94c9b1e
Update CHANGELOG.md
MatthiasReumann Jul 8, 2026
c5dd843
Add missing include
MatthiasReumann Jul 8, 2026
e0d6756
🎨 pre-commit fixes
pre-commit-ci[bot] Jul 8, 2026
f55ff36
Remove unused Traits
MatthiasReumann Jul 8, 2026
bfe6af8
Merge branch 'main' into enh/sc-map-scf-if-stmt
MatthiasReumann Jul 9, 2026
28a2c9c
Use "replaceWithAdditionalQubits" method
MatthiasReumann Jul 9, 2026
1906f13
Update mapping condition
MatthiasReumann Jul 9, 2026
29c7ba5
Remove left-over func dump
MatthiasReumann Jul 9, 2026
cc63e32
:zap: Optimized performance and scalability of the quantum circuit ma…
burgholzer Jul 9, 2026
9457ca5
Add [[nodiscard]] attributes
MatthiasReumann Jul 10, 2026
d15ca9c
Merge branch 'main' into enh/sc-map-scf-if-stmt
MatthiasReumann Jul 10, 2026
f260e6c
🎨 pre-commit fixes
pre-commit-ci[bot] Jul 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@ releases may include breaking changes.
[#1676], [#1706], [#1776]) ([**@denialhaag**], [**@burgholzer**])
- ✨ Add a `place-and-route` pass for mapping circuits to architectures with
restricted topologies ([#1537], [#1547], [#1568], [#1581], [#1583], [#1588],
[#1600], [#1664], [#1709], [#1716], [#1748], [#1805]) ([**@MatthiasReumann**],
[**@burgholzer**])
[#1600], [#1664], [#1709], [#1716], [#1748], [#1805], [#1870])
([**@MatthiasReumann**], [**@burgholzer**])
- ✨ 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],
Expand Down Expand Up @@ -630,6 +630,7 @@ changelogs._
[#1877]: https://github.com/munich-quantum-toolkit/core/pull/1877
[#1873]: https://github.com/munich-quantum-toolkit/core/pull/1873
[#1872]: https://github.com/munich-quantum-toolkit/core/pull/1872
[#1870]: https://github.com/munich-quantum-toolkit/core/pull/1870
[#1869]: https://github.com/munich-quantum-toolkit/core/pull/1869
[#1850]: https://github.com/munich-quantum-toolkit/core/pull/1850
[#1849]: https://github.com/munich-quantum-toolkit/core/pull/1849
Expand Down
4 changes: 3 additions & 1 deletion mlir/include/mlir/Dialect/QCO/Utils/Graph.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,9 @@ class Graph {
[[nodiscard]] size_t getNumNodes() const { return adj_.size(); }

/// Return the degree of a node.
[[nodiscard]] size_t getDegree(size_t id) { return adj_.at(id).size(); }
[[nodiscard]] size_t getDegree(const size_t id) const {
return adj_.at(id).size();
}

/// Return the max degree of the graph.
[[nodiscard]] size_t getMaxDegree() const;
Expand Down
4 changes: 2 additions & 2 deletions mlir/lib/Dialect/QCO/IR/SCF/IfOp.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -313,14 +313,14 @@ BlockArgument IfOp::getTiedElseBlockArgument(OpOperand* qubit) {
}

OpOperand* IfOp::getTiedThenYieldedValue(BlockArgument bbArg) {
if (bbArg.getDefiningOp() != getOperation()) {
if (bbArg.getOwner()->getParentOp() != getOperation()) {
return nullptr;
}
return &thenYield().getTargetsMutable()[bbArg.getArgNumber()];
}

OpOperand* IfOp::getTiedElseYieldedValue(BlockArgument bbArg) {
if (bbArg.getDefiningOp() != getOperation()) {
if (bbArg.getOwner()->getParentOp() != getOperation()) {
return nullptr;
}
return &elseYield().getTargetsMutable()[bbArg.getArgNumber()];
Expand Down
Loading
Loading