Skip to content

Commit eceeceb

Browse files
🎨 Clean up MLIR code here and there (#1521)
## Description This PR contains minor improvements to the MLIR code that I have stumbled across during #1479. I'm opening up this PR to keep #1479 a bit leaner. ## Checklist: - [x] The pull request only contains commits that are focused and relevant to this change. - [x] ~I have added appropriate tests that cover the new/changed functionality.~ - [x] ~I have updated the documentation to reflect these changes.~ - [x] I have added entries to the changelog for any noteworthy additions, changes, fixes, or removals. - [x] ~I have added migration instructions to the upgrade guide (if needed).~ - [x] The changes follow the project's style guidelines and introduce no new warnings. - [x] The changes are fully tested and pass the CI checks. - [x] I have reviewed my own code changes. --------- Signed-off-by: Daniel Haag <121057143+denialhaag@users.noreply.github.com> Co-authored-by: Lukas Burgholzer <burgholzer@me.com>
1 parent 573719e commit eceeceb

File tree

8 files changed

+68
-69
lines changed

8 files changed

+68
-69
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ This project adheres to [Semantic Versioning], with the exception that minor rel
1212
### Added
1313

1414
- ✨ Add initial infrastructure for new QC and QCO MLIR dialects
15-
([#1264], [#1330], [#1402], [#1428], [#1430], [#1436], [#1443], [#1446], [#1464], [#1465], [#1470], [#1471], [#1472], [#1474], [#1475], [#1513])
15+
([#1264], [#1330], [#1402], [#1428], [#1430], [#1436], [#1443], [#1446], [#1464], [#1465], [#1470], [#1471], [#1472], [#1474], [#1475], [#1513], [#1521])
1616
([**@burgholzer**], [**@denialhaag**], [**@taminob**], [**@DRovara**], [**@li-mingbao**], [**@Ectras**])
1717

1818
### Changed
@@ -327,6 +327,7 @@ _📚 Refer to the [GitHub Release Notes](https://github.com/munich-quantum-tool
327327

328328
<!-- PR links -->
329329

330+
[#1521]: https://github.com/munich-quantum-toolkit/core/pull/1521
330331
[#1513]: https://github.com/munich-quantum-toolkit/core/pull/1513
331332
[#1481]: https://github.com/munich-quantum-toolkit/core/pull/1481
332333
[#1475]: https://github.com/munich-quantum-toolkit/core/pull/1475

mlir/include/mlir/Conversion/QCOToQC/QCOToQC.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
#pragma once
1212

13-
#include <mlir/Pass/Pass.h> // from @llvm-project
13+
#include <mlir/Pass/Pass.h>
1414

1515
namespace mlir {
1616
#define GEN_PASS_DECL_QCOTOQC

mlir/include/mlir/Conversion/QCToQCO/QCToQCO.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
#pragma once
1212

13-
#include <mlir/Pass/Pass.h> // from @llvm-project
13+
#include <mlir/Pass/Pass.h>
1414

1515
namespace mlir {
1616
#define GEN_PASS_DECL_QCTOQCO

mlir/include/mlir/Conversion/QCToQIR/QCToQIR.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
#pragma once
1212

13-
#include <mlir/Pass/Pass.h> // from @llvm-project
13+
#include <mlir/Pass/Pass.h>
1414

1515
namespace mlir {
1616
#define GEN_PASS_DECL_QCTOQIR

mlir/include/mlir/Dialect/QC/IR/QCOps.td

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -943,7 +943,7 @@ def CtrlOp : QCOp<"ctrl",
943943
```mlir
944944
qc.ctrl(%q0) {
945945
qc.x %q1 : !qc.qubit
946-
}
946+
} : !qc.qubit
947947
```
948948
}];
949949

mlir/lib/Conversion/QCOToQC/QCOToQC.cpp

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ static LogicalResult
6868
convertOneTargetZeroParameter(QCOOpType& op, QCOOpAdaptorType& adaptor,
6969
ConversionPatternRewriter& rewriter) {
7070
// OpAdaptor provides the already type-converted input qubit
71-
const auto& qcQubit = adaptor.getQubitIn();
71+
auto qcQubit = adaptor.getQubitIn();
7272

7373
// Create the QC operation (in-place, no result)
7474
rewriter.create<QCOpType>(op.getLoc(), qcQubit);
@@ -95,7 +95,7 @@ static LogicalResult
9595
convertOneTargetOneParameter(QCOOpType& op, QCOOpAdaptorType& adaptor,
9696
ConversionPatternRewriter& rewriter) {
9797
// OpAdaptor provides the already type-converted input qubit
98-
const auto& qcQubit = adaptor.getQubitIn();
98+
auto qcQubit = adaptor.getQubitIn();
9999

100100
// Create the QC operation (in-place, no result)
101101
rewriter.create<QCOpType>(op.getLoc(), qcQubit, op.getParameter(0));
@@ -122,7 +122,7 @@ static LogicalResult
122122
convertOneTargetTwoParameter(QCOOpType& op, QCOOpAdaptorType& adaptor,
123123
ConversionPatternRewriter& rewriter) {
124124
// OpAdaptor provides the already type-converted input qubit
125-
const auto& qcQubit = adaptor.getQubitIn();
125+
auto qcQubit = adaptor.getQubitIn();
126126

127127
// Create the QC operation (in-place, no result)
128128
rewriter.create<QCOpType>(op.getLoc(), qcQubit, op.getParameter(0),
@@ -150,7 +150,7 @@ static LogicalResult
150150
convertOneTargetThreeParameter(QCOOpType& op, QCOOpAdaptorType& adaptor,
151151
ConversionPatternRewriter& rewriter) {
152152
// OpAdaptor provides the already type-converted input qubit
153-
const auto& qcQubit = adaptor.getQubitIn();
153+
auto qcQubit = adaptor.getQubitIn();
154154

155155
// Create the QC operation (in-place, no result)
156156
rewriter.create<QCOpType>(op.getLoc(), qcQubit, op.getParameter(0),
@@ -178,8 +178,8 @@ static LogicalResult
178178
convertTwoTargetZeroParameter(QCOOpType& op, QCOOpAdaptorType& adaptor,
179179
ConversionPatternRewriter& rewriter) {
180180
// OpAdaptor provides the already type-converted input qubits
181-
const auto& qcQubit0 = adaptor.getQubit0In();
182-
const auto& qcQubit1 = adaptor.getQubit1In();
181+
auto qcQubit0 = adaptor.getQubit0In();
182+
auto qcQubit1 = adaptor.getQubit1In();
183183

184184
// Create the QC operation (in-place, no result)
185185
rewriter.create<QCOpType>(op.getLoc(), qcQubit0, qcQubit1);
@@ -206,8 +206,8 @@ static LogicalResult
206206
convertTwoTargetOneParameter(QCOOpType& op, QCOOpAdaptorType& adaptor,
207207
ConversionPatternRewriter& rewriter) {
208208
// OpAdaptor provides the already type-converted input qubits
209-
const auto& qcQubit0 = adaptor.getQubit0In();
210-
const auto& qcQubit1 = adaptor.getQubit1In();
209+
auto qcQubit0 = adaptor.getQubit0In();
210+
auto qcQubit1 = adaptor.getQubit1In();
211211

212212
// Create the QC operation (in-place, no result)
213213
rewriter.create<QCOpType>(op.getLoc(), qcQubit0, qcQubit1,
@@ -235,8 +235,8 @@ static LogicalResult
235235
convertTwoTargetTwoParameter(QCOOpType& op, QCOOpAdaptorType& adaptor,
236236
ConversionPatternRewriter& rewriter) {
237237
// OpAdaptor provides the already type-converted input qubits
238-
const auto& qcQubit0 = adaptor.getQubit0In();
239-
const auto& qcQubit1 = adaptor.getQubit1In();
238+
auto qcQubit0 = adaptor.getQubit0In();
239+
auto qcQubit1 = adaptor.getQubit1In();
240240

241241
// Create the QC operation (in-place, no result)
242242
rewriter.create<QCOpType>(op.getLoc(), qcQubit0, qcQubit1, op.getParameter(0),
@@ -392,7 +392,7 @@ struct ConvertQCOMeasureOp final : OpConversionPattern<qco::MeasureOp> {
392392
matchAndRewrite(qco::MeasureOp op, OpAdaptor adaptor,
393393
ConversionPatternRewriter& rewriter) const override {
394394
// OpAdaptor provides the already type-converted input qubit
395-
const auto& qcQubit = adaptor.getQubitIn();
395+
auto qcQubit = adaptor.getQubitIn();
396396

397397
// Create qc.measure (in-place operation, returns only bit)
398398
// Preserve register metadata for output recording
@@ -437,7 +437,7 @@ struct ConvertQCOResetOp final : OpConversionPattern<qco::ResetOp> {
437437
matchAndRewrite(qco::ResetOp op, OpAdaptor adaptor,
438438
ConversionPatternRewriter& rewriter) const override {
439439
// OpAdaptor provides the already type-converted input qubit
440-
const auto& qcQubit = adaptor.getQubitIn();
440+
auto qcQubit = adaptor.getQubitIn();
441441

442442
// Create qc.reset (in-place operation, no result)
443443
rewriter.create<qc::ResetOp>(op.getLoc(), qcQubit);
@@ -737,7 +737,7 @@ struct ConvertQCOBarrierOp final : OpConversionPattern<qco::BarrierOp> {
737737
matchAndRewrite(qco::BarrierOp op, OpAdaptor adaptor,
738738
ConversionPatternRewriter& rewriter) const override {
739739
// OpAdaptor provides the already type-converted qubits
740-
const auto& qcQubits = adaptor.getQubitsIn();
740+
auto qcQubits = adaptor.getQubitsIn();
741741

742742
// Create qc.barrier operation
743743
rewriter.create<qc::BarrierOp>(op.getLoc(), qcQubits);
@@ -763,7 +763,7 @@ struct ConvertQCOBarrierOp final : OpConversionPattern<qco::BarrierOp> {
763763
* ```mlir
764764
* qc.ctrl(%q0) {
765765
* qc.x %q1 : !qc.qubit
766-
* }
766+
* } : !qc.qubit
767767
* ```
768768
*/
769769
struct ConvertQCOCtrlOp final : OpConversionPattern<qco::CtrlOp> {
@@ -773,7 +773,7 @@ struct ConvertQCOCtrlOp final : OpConversionPattern<qco::CtrlOp> {
773773
matchAndRewrite(qco::CtrlOp op, OpAdaptor adaptor,
774774
ConversionPatternRewriter& rewriter) const override {
775775
// Get QC controls
776-
const auto& qcControls = adaptor.getControlsIn();
776+
auto qcControls = adaptor.getControlsIn();
777777

778778
// Create qc.ctrl operation
779779
auto qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), qcControls);

0 commit comments

Comments
 (0)