Skip to content

Commit caac364

Browse files
author
Kostrzewa, Niklas
committed
Update to newer core Version
1 parent df84f65 commit caac364

6 files changed

Lines changed: 78 additions & 74 deletions

File tree

cmake/ExternalDependencies.cmake

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ set(MQT_CORE_MINIMUM_VERSION 3.4.0
1515
CACHE STRING "MQT Core minimum version")
1616
set(MQT_CORE_VERSION 3.4.0
1717
CACHE STRING "MQT Core version")
18-
set(MQT_CORE_REV "test_Memref_explicit" # fix clang-tidy warnings 7d1d7fb
18+
set(MQT_CORE_REV "memref_explicit"
1919
CACHE STRING "MQT Core identifier (tag, branch or commit hash)")
2020
set(MQT_CORE_REPO_OWNER "NiklasKostrzewa"
2121
CACHE STRING "MQT Core repository owner (change when using a fork)")

lib/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ add_subdirectory(Conversion)
2222

2323
set(TARGET_NAME mqt-core-plugins-catalyst)
2424

25-
add_llvm_library(${TARGET_NAME} MODULE mqt-plugin.cpp LINK_LIBS CatalystQuantumToQC)
26-
# QCToCatalystQuantum)
25+
add_llvm_library(${TARGET_NAME} MODULE mqt-plugin.cpp LINK_LIBS CatalystQuantumToQC
26+
QCToCatalystQuantum)
2727

2828
# set required C++ standard
2929
target_compile_features(${TARGET_NAME} PUBLIC cxx_std_20)

lib/Conversion/CatalystQuantumToQC/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ add_mlir_library(
1212
LINK_LIBS
1313
MLIRQCDialect
1414
MLIRTransforms
15+
MLIRMemRefDialect
1516
MLIRFuncDialect
1617
DEPENDS
1718
CatalystQuantumToQCIncGen)

lib/Conversion/CatalystQuantumToQC/CatalystQuantumToQC.cpp

Lines changed: 53 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include "mlir/Conversion/CatalystQuantumToQC/CatalystQuantumToQC.h" // NOLINT(misc-include-cleaner)
1212

1313
#include "mlir/Dialect/QC/IR/QCDialect.h"
14+
#include "mlir/Dialect/QC/IR/QCOps.h"
1415

1516
#include <Quantum/IR/QuantumDialect.h>
1617
#include <Quantum/IR/QuantumOps.h>
@@ -76,7 +77,7 @@ class CatalystQuantumToQCTypeConverter final : public TypeConverter {
7677
if (inputs[0].getType() != resultType) {
7778
if (auto memrefType = dyn_cast<MemRefType>(resultType)) {
7879
if (isa<MemRefType>(inputs[0].getType())) {
79-
return {builder.create<memref::CastOp>(loc, memrefType, inputs[0])};
80+
return {memref::CastOp::create(builder, loc, memrefType, inputs[0])};
8081
}
8182
}
8283
}
@@ -102,18 +103,18 @@ struct ConvertQuantumAlloc final
102103
const auto nqubits = nqubitsAttr.getValue().getZExtValue();
103104
const auto memrefType =
104105
MemRefType::get({static_cast<int64_t>(nqubits)}, qubitType);
105-
auto allocOp = rewriter.create<memref::AllocOp>(op.getLoc(), memrefType);
106+
auto allocOp = memref::AllocOp::create(rewriter, op.getLoc(), memrefType);
106107
rewriter.replaceOp(op, allocOp.getResult());
107108
} else if (auto nqubitsOp = op.getNqubits()) {
108109
// Dynamic allocation
109110
Value size = nqubitsOp;
110111
if (isa<IntegerType>(size.getType())) {
111-
size = rewriter.create<arith::IndexCastOp>(
112+
size = arith::IndexCastOp::create(rewriter,
112113
op.getLoc(), rewriter.getIndexType(), size);
113114
}
114115
const auto memrefType =
115116
MemRefType::get({ShapedType::kDynamic}, qubitType);
116-
auto allocOp = rewriter.create<memref::AllocOp>(op.getLoc(), memrefType,
117+
auto allocOp = memref::AllocOp::create(rewriter, op.getLoc(), memrefType,
117118
ValueRange{size});
118119
rewriter.replaceOp(op, allocOp.getResult());
119120
} else {
@@ -161,7 +162,7 @@ struct ConvertQuantumMeasure final
161162
// Create the new operation
162163
// Note: quantum.measure returns (i1, !quantum.bit)
163164
// qc.measure returns i1
164-
auto QCOp = rewriter.create<qc::MeasureOp>(op.getLoc(), inQubit);
165+
auto QCOp = qc::MeasureOp::create(rewriter, op.getLoc(), inQubit);
165166

166167
// Replace with results in the correct order
167168
rewriter.replaceOp(op, {inQubit, QCOp.getResult()});
@@ -186,7 +187,7 @@ struct ConvertQuantumExtract final
186187
if (idxAttr) {
187188
// Compile-time constant index from attribute
188189
const auto idx = idxAttr.getValue().getZExtValue();
189-
indexValue = rewriter.create<ConstantIndexOp>(op.getLoc(), idx);
190+
indexValue = ConstantIndexOp::create(rewriter, op.getLoc(), idx);
190191
} else {
191192
// Runtime dynamic index from operand
192193
auto idxOperand = adaptor.getIdx();
@@ -196,7 +197,7 @@ struct ConvertQuantumExtract final
196197

197198
// Convert i64 to index type if needed
198199
if (isa<IntegerType>(idxOperand.getType())) {
199-
indexValue = rewriter.create<IndexCastOp>(
200+
indexValue = IndexCastOp::create(rewriter,
200201
op.getLoc(), rewriter.getIndexType(), idxOperand);
201202
} else {
202203
indexValue = idxOperand;
@@ -221,7 +222,7 @@ struct ConvertQuantumExtract final
221222
}
222223

223224
// Create the new operation
224-
auto loadOp = rewriter.create<memref::LoadOp>(
225+
auto loadOp = memref::LoadOp::create(rewriter,
225226
op.getLoc(), qubitType, memref, ValueRange{indexValue});
226227

227228
// Replace the extract operation with the loaded qubit
@@ -244,7 +245,7 @@ struct ConvertQuantumInsert final
244245
if (idxAttr) {
245246
// Compile-time constant index from attribute
246247
const auto idx = idxAttr.getValue().getZExtValue();
247-
indexValue = rewriter.create<ConstantIndexOp>(op.getLoc(), idx);
248+
indexValue = ConstantIndexOp::create(rewriter, op.getLoc(), idx);
248249
} else {
249250
// Runtime dynamic index from operand
250251
auto idxOperand = adaptor.getIdx();
@@ -254,7 +255,7 @@ struct ConvertQuantumInsert final
254255

255256
// Convert i64 to index type if needed
256257
if (isa<IntegerType>(idxOperand.getType())) {
257-
indexValue = rewriter.create<IndexCastOp>(
258+
indexValue = IndexCastOp::create(rewriter,
258259
op.getLoc(), rewriter.getIndexType(), idxOperand);
259260
} else {
260261
indexValue = idxOperand;
@@ -272,7 +273,7 @@ struct ConvertQuantumInsert final
272273
}
273274

274275
// Create the new operation
275-
rewriter.create<memref::StoreOp>(op.getLoc(), adaptor.getQubit(), memref,
276+
memref::StoreOp::create(rewriter, op.getLoc(), adaptor.getQubit(), memref,
276277
ValueRange{indexValue});
277278

278279
// In the memref model, the register is modified in-place
@@ -292,7 +293,7 @@ struct ConvertQuantumGlobalPhase final
292293
const auto param = adaptor.getParams();
293294

294295
// Replace the original with the new operation
295-
rewriter.create<qc::GPhaseOp>(op.getLoc(), param);
296+
qc::GPhaseOp::create(rewriter, op.getLoc(), param);
296297
rewriter.eraseOp(op);
297298
return success();
298299
}
@@ -319,23 +320,23 @@ struct ConvertQuantumCustomOp final
319320
Operation* qcOp = nullptr;
320321

321322
#define CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(GATE_TYPE) \
322-
rewriter.create<qc::GATE_TYPE##Op>(op.getLoc(), inQubits[0])
323+
qc::GATE_TYPE##Op::create(rewriter, op.getLoc(), inQubits[0])
323324

324325
#define CREATE_TWO_TARGET_ZERO_PARAMETER_GATE_OP(GATE_TYPE) \
325-
rewriter.create<qc::GATE_TYPE##Op>(op.getLoc(), inQubits[0], inQubits[1])
326+
qc::GATE_TYPE##Op::create(rewriter, op.getLoc(), inQubits[0], inQubits[1])
326327

327328
#define CREATE_ONE_TARGET_ONE_PARAMETER_GATE_OP(GATE_TYPE) \
328-
rewriter.create<qc::GATE_TYPE##Op>(op.getLoc(), inQubits[0], paramsValues[0])
329+
qc::GATE_TYPE##Op::create(rewriter, op.getLoc(), inQubits[0], paramsValues[0])
329330

330331
#define CREATE_TWO_TARGET_ONE_PARAMETER_GATE_OP(GATE_TYPE) \
331-
rewriter.create<qc::GATE_TYPE##Op>(op.getLoc(), inQubits[0], inQubits[1], \
332+
qc::GATE_TYPE##Op::create(rewriter, op.getLoc(), inQubits[0], inQubits[1], \
332333
paramsValues[0])
333334

334335
if (gateName == "Hadamard") {
335336
if (inCtrlQubits.empty()) {
336337
qcOp = CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(H);
337338
} else {
338-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inCtrlQubits, [&]() {
339+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inCtrlQubits, [&]() {
339340
CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(H);
340341
});
341342
}
@@ -345,23 +346,23 @@ struct ConvertQuantumCustomOp final
345346
if (inCtrlQubits.empty()) {
346347
qcOp = CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(X);
347348
} else {
348-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inCtrlQubits, [&]() {
349+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inCtrlQubits, [&]() {
349350
CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(X);
350351
});
351352
}
352353
} else if (gateName == "PauliY") {
353354
if (inCtrlQubits.empty()) {
354355
qcOp = CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(Y);
355356
} else {
356-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inCtrlQubits, [&]() {
357+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inCtrlQubits, [&]() {
357358
CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(Y);
358359
});
359360
}
360361
} else if (gateName == "PauliZ") {
361362
if (inCtrlQubits.empty()) {
362363
qcOp = CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(Z);
363364
} else {
364-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inCtrlQubits, [&]() {
365+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inCtrlQubits, [&]() {
365366
CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(Z);
366367
});
367368
}
@@ -370,15 +371,15 @@ struct ConvertQuantumCustomOp final
370371
if (inCtrlQubits.empty()) {
371372
qcOp = CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(Sdg);
372373
} else {
373-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inCtrlQubits, [&]() {
374+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inCtrlQubits, [&]() {
374375
CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(Sdg);
375376
});
376377
}
377378
} else {
378379
if (inCtrlQubits.empty()) {
379380
qcOp = CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(S);
380381
} else {
381-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inCtrlQubits, [&]() {
382+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inCtrlQubits, [&]() {
382383
CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(S);
383384
});
384385
}
@@ -388,15 +389,15 @@ struct ConvertQuantumCustomOp final
388389
if (inCtrlQubits.empty()) {
389390
qcOp = CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(Tdg);
390391
} else {
391-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inCtrlQubits, [&]() {
392+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inCtrlQubits, [&]() {
392393
CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(Tdg);
393394
});
394395
}
395396
} else {
396397
if (inCtrlQubits.empty()) {
397398
qcOp = CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(T);
398399
} else {
399-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inCtrlQubits, [&]() {
400+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inCtrlQubits, [&]() {
400401
CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(T);
401402
});
402403
}
@@ -406,15 +407,15 @@ struct ConvertQuantumCustomOp final
406407
if (inCtrlQubits.empty()) {
407408
qcOp = CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(SXdg);
408409
} else {
409-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inCtrlQubits, [&]() {
410+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inCtrlQubits, [&]() {
410411
CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(SXdg);
411412
});
412413
}
413414
} else {
414415
if (inCtrlQubits.empty()) {
415416
qcOp = CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(SX);
416417
} else {
417-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inCtrlQubits, [&]() {
418+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inCtrlQubits, [&]() {
418419
CREATE_ONE_TARGET_ZERO_PARAMETER_GATE_OP(SX);
419420
});
420421
}
@@ -423,88 +424,88 @@ struct ConvertQuantumCustomOp final
423424
if (inCtrlQubits.empty()) {
424425
qcOp = CREATE_TWO_TARGET_ZERO_PARAMETER_GATE_OP(ECR);
425426
} else {
426-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inCtrlQubits, [&]() {
427+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inCtrlQubits, [&]() {
427428
CREATE_TWO_TARGET_ZERO_PARAMETER_GATE_OP(ECR);
428429
});
429430
}
430431
} else if (gateName == "SWAP") {
431432
if (inCtrlQubits.empty()) {
432433
qcOp = CREATE_TWO_TARGET_ZERO_PARAMETER_GATE_OP(SWAP);
433434
} else {
434-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inCtrlQubits, [&]() {
435+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inCtrlQubits, [&]() {
435436
CREATE_TWO_TARGET_ZERO_PARAMETER_GATE_OP(SWAP);
436437
});
437438
}
438439
} else if (gateName == "ISWAP") {
439440
if (inCtrlQubits.empty()) {
440441
qcOp = CREATE_TWO_TARGET_ZERO_PARAMETER_GATE_OP(iSWAP);
441442
} else {
442-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inCtrlQubits, [&]() {
443+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inCtrlQubits, [&]() {
443444
CREATE_TWO_TARGET_ZERO_PARAMETER_GATE_OP(iSWAP);
444445
});
445446
}
446447
} else if (gateName == "RX") {
447448
if (inCtrlQubits.empty()) {
448449
qcOp = CREATE_ONE_TARGET_ONE_PARAMETER_GATE_OP(RX);
449450
} else {
450-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inCtrlQubits, [&]() {
451+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inCtrlQubits, [&]() {
451452
CREATE_ONE_TARGET_ONE_PARAMETER_GATE_OP(RX);
452453
});
453454
}
454455
} else if (gateName == "RY") {
455456
if (inCtrlQubits.empty()) {
456457
qcOp = CREATE_ONE_TARGET_ONE_PARAMETER_GATE_OP(RY);
457458
} else {
458-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inCtrlQubits, [&]() {
459+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inCtrlQubits, [&]() {
459460
CREATE_ONE_TARGET_ONE_PARAMETER_GATE_OP(RY);
460461
});
461462
}
462463
} else if (gateName == "RZ") {
463464
if (inCtrlQubits.empty()) {
464465
qcOp = CREATE_ONE_TARGET_ONE_PARAMETER_GATE_OP(RZ);
465466
} else {
466-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inCtrlQubits, [&]() {
467+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inCtrlQubits, [&]() {
467468
CREATE_ONE_TARGET_ONE_PARAMETER_GATE_OP(RZ);
468469
});
469470
}
470471
} else if (gateName == "PhaseShift") {
471472
if (inCtrlQubits.empty()) {
472473
qcOp = CREATE_ONE_TARGET_ONE_PARAMETER_GATE_OP(P);
473474
} else {
474-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inCtrlQubits, [&]() {
475+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inCtrlQubits, [&]() {
475476
CREATE_ONE_TARGET_ONE_PARAMETER_GATE_OP(P);
476477
});
477478
}
478479
} else if (gateName == "CRX") {
479-
qcOp = rewriter.create<qc::CtrlOp>(
480+
qcOp = qc::CtrlOp::create(rewriter,
480481
op.getLoc(), inQubits.take_front(1), [&]() {
481-
rewriter.create<qc::RXOp>(op.getLoc(), inQubits[1],
482+
qc::RXOp::create(rewriter, op.getLoc(), inQubits[1],
482483
paramsValues[0]);
483484
});
484485
} else if (gateName == "CRY") {
485-
qcOp = rewriter.create<qc::CtrlOp>(
486+
qcOp = qc::CtrlOp::create(rewriter,
486487
op.getLoc(), inQubits.take_front(1), [&]() {
487-
rewriter.create<qc::RYOp>(op.getLoc(), inQubits[1],
488+
qc::RYOp::create(rewriter, op.getLoc(), inQubits[1],
488489
paramsValues[0]);
489490
});
490491
} else if (gateName == "CRZ") {
491-
qcOp = rewriter.create<qc::CtrlOp>(
492+
qcOp = qc::CtrlOp::create(rewriter,
492493
op.getLoc(), inQubits.take_front(1), [&]() {
493-
rewriter.create<qc::RZOp>(op.getLoc(), inQubits[1],
494+
qc::RZOp::create(rewriter, op.getLoc(), inQubits[1],
494495
paramsValues[0]);
495496
});
496497
} else if (gateName == "ControlledPhaseShift") {
497-
qcOp = rewriter.create<qc::CtrlOp>(
498+
qcOp = qc::CtrlOp::create(rewriter,
498499
op.getLoc(), inQubits.take_front(1), [&]() {
499-
rewriter.create<qc::POp>(op.getLoc(), inQubits[1], paramsValues[0]);
500+
qc::POp::create(rewriter, op.getLoc(), inQubits[1], paramsValues[0]);
500501
});
501502
} else if (gateName == "IsingXY") {
502503
// PennyLane IsingXY has 1 parameter (phi), OpenQASM XXPlusYY needs 2
503504
// (theta, beta) Relationship: IsingXY(phi) = XXPlusYY(phi, pi)
504505
// Add pi as second parameter (since we add it during compilation)
505506

506507
qcOp =
507-
rewriter.create<qc::XXPlusYYOp>(op.getLoc(), inQubits[0], inQubits[1],
508+
qc::XXPlusYYOp::create(rewriter, op.getLoc(), inQubits[0], inQubits[1],
508509
paramsValues[0], std::numbers::pi);
509510
} else if (gateName == "IsingXX") {
510511
qcOp = CREATE_TWO_TARGET_ONE_PARAMETER_GATE_OP(RXX);
@@ -513,24 +514,24 @@ struct ConvertQuantumCustomOp final
513514
} else if (gateName == "IsingZZ") {
514515
qcOp = CREATE_TWO_TARGET_ONE_PARAMETER_GATE_OP(RZZ);
515516
} else if (gateName == "CNOT") {
516-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inQubits[0], [&]() {
517-
rewriter.create<qc::XOp>(op.getLoc(), inQubits[1]);
517+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inQubits[0], [&]() {
518+
qc::XOp::create(rewriter, op.getLoc(), inQubits[1]);
518519
});
519520
} else if (gateName == "CY") {
520-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inQubits[0], [&]() {
521-
rewriter.create<qc::YOp>(op.getLoc(), inQubits[1]);
521+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inQubits[0], [&]() {
522+
qc::YOp::create(rewriter, op.getLoc(), inQubits[1]);
522523
});
523524
} else if (gateName == "CZ") {
524-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inQubits[0], [&]() {
525-
rewriter.create<qc::ZOp>(op.getLoc(), inQubits[1]);
525+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inQubits[0], [&]() {
526+
qc::ZOp::create(rewriter, op.getLoc(), inQubits[1]);
526527
});
527528
} else if (gateName == "Toffoli") {
528-
qcOp = rewriter.create<qc::CtrlOp>(
529+
qcOp = qc::CtrlOp::create(rewriter,
529530
op.getLoc(), inQubits.take_front(2),
530-
[&]() { rewriter.create<qc::XOp>(op.getLoc(), inQubits[2]); });
531+
[&]() { qc::XOp::create(rewriter, op.getLoc(), inQubits[2]); });
531532
} else if (gateName == "CSWAP") {
532-
qcOp = rewriter.create<qc::CtrlOp>(op.getLoc(), inQubits[0], [&]() {
533-
rewriter.create<qc::SWAPOp>(op.getLoc(), inQubits[1], inQubits[2]);
533+
qcOp = qc::CtrlOp::create(rewriter, op.getLoc(), inQubits[0], [&]() {
534+
qc::SWAPOp::create(rewriter, op.getLoc(), inQubits[1], inQubits[2]);
534535
});
535536
} else {
536537
return op.emitError("Unsupported gate: ") << gateName;

lib/mqt-plugin.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,6 @@ extern "C" LLVM_ATTRIBUTE_WEAK PassPluginLibraryInfo mlirGetPassPluginInfo() {
4444
// Note: mqt::ir::opt::registerQCPasses() is not called to avoid
4545
// pulling in transpilation transforms that require LLVM 21
4646
mqt::ir::conversions::registerCatalystQuantumToQCPasses();
47-
// mqt::ir::conversions::registerQCToCatalystQuantumPasses();
47+
mqt::ir::conversions::registerQCToCatalystQuantumPasses();
4848
}};
4949
}

0 commit comments

Comments
 (0)