1616#include " mlir/Dialect/QIR/Utils/QIRMetadata.h"
1717#include " mlir/Dialect/QIR/Utils/QIRUtils.h"
1818
19+ #include < llvm/ADT/DenseMap.h>
1920#include < llvm/ADT/STLExtras.h>
2021#include < llvm/ADT/SmallVector.h>
2122#include < llvm/ADT/StringMap.h>
23+ #include < llvm/ADT/StringRef.h>
2224#include < llvm/Support/Allocator.h>
2325#include < llvm/Support/Casting.h>
2426#include < llvm/Support/ErrorHandling.h>
@@ -76,10 +78,10 @@ enum class AllocationMode : std::uint8_t {
7678 */
7779struct LoweringState : QIRMetadata {
7880 // / Cache static qubit pointers for reuse
79- DenseMap<int64_t , Value> staticQubits;
81+ llvm:: DenseMap<int64_t , Value> staticQubits;
8082
8183 // / Cache MemRef sizes for reuse
82- DenseMap<Value, Value> memrefSizes;
84+ llvm:: DenseMap<Value, Value> memrefSizes;
8385
8486 // / Map from register name to result-array pointer
8587 llvm::StringMap<Value> resultArrays;
@@ -88,11 +90,11 @@ struct LoweringState : QIRMetadata {
8890 llvm::DenseMap<std::pair<llvm::StringRef, int64_t >, Value> loadedResults;
8991
9092 // / Map from index to result pointer for non-register results
91- DenseMap<int64_t , Value> resultPtrs;
93+ llvm:: DenseMap<int64_t , Value> resultPtrs;
9294
9395 // / Modifier information
9496 int64_t inCtrlOp = 0 ;
95- DenseMap<int64_t , SmallVector<Value>> controls;
97+ llvm:: DenseMap<int64_t , llvm:: SmallVector<Value>> controls;
9698
9799 // / Allocator and StringSaver for stable StringRefs
98100 llvm::BumpPtrAllocator allocator;
@@ -168,16 +170,16 @@ template <typename QCOpType, typename QCOpAdaptorType>
168170static LogicalResult
169171convertUnitaryToCallOp (QCOpType& op, QCOpAdaptorType& adaptor,
170172 ConversionPatternRewriter& rewriter, MLIRContext* ctx,
171- LoweringState& state, StringRef fnName,
173+ LoweringState& state, llvm:: StringRef fnName,
172174 size_t numTargets, size_t numParams) {
173175 // Query state for modifier information
174176 const auto inCtrlOp = state.inCtrlOp ;
175- const SmallVector<Value> controls =
176- inCtrlOp != 0 ? state.controls [inCtrlOp] : SmallVector<Value>{};
177+ const llvm:: SmallVector<Value> controls =
178+ inCtrlOp != 0 ? state.controls [inCtrlOp] : llvm:: SmallVector<Value>{};
177179 const size_t numCtrls = controls.size ();
178180
179181 // Define argument types
180- SmallVector<Type> argumentTypes;
182+ llvm:: SmallVector<Type> argumentTypes;
181183 argumentTypes.reserve (numParams + numCtrls + numTargets);
182184 const auto ptrType = LLVM::LLVMPointerType::get (ctx);
183185 const auto floatType = Float64Type::get (ctx);
@@ -202,7 +204,7 @@ convertUnitaryToCallOp(QCOpType& op, QCOpAdaptorType& adaptor,
202204 const auto fnDecl =
203205 getOrCreateFunctionDeclaration (rewriter, op, fnName, fnSignature);
204206
205- SmallVector<Value> operands;
207+ llvm:: SmallVector<Value> operands;
206208 operands.reserve (numParams + numCtrls + numTargets);
207209 operands.append (controls.begin (), controls.end ());
208210 operands.append (adaptor.getOperands ().begin (), adaptor.getOperands ().end ());
@@ -865,8 +867,8 @@ struct ConvertQCCtrlOp final : StatefulOpConversionPattern<CtrlOp> {
865867 // Update modifier information
866868 auto & state = getState ();
867869 state.inCtrlOp ++;
868- const SmallVector<Value> controls (adaptor.getControls ().begin (),
869- adaptor.getControls ().end ());
870+ const llvm:: SmallVector<Value> controls (adaptor.getControls ().begin (),
871+ adaptor.getControls ().end ());
870872 state.controls [state.inCtrlOp ] = controls;
871873
872874 // Inline region and remove operation
@@ -996,12 +998,13 @@ struct QCToQIR final : impl::QCToQIRBase<QCToQIR> {
996998 // Move operations to appropriate blocks
997999 for (auto it = bodyBlock->begin (); it != bodyBlock->end ();) {
9981000 // Ensure iterator remains valid after potential move
999- if (auto & op = *it++; isa<LLVM ::ReturnOp>(op)) {
1001+ if (auto & op = *it++; llvm:: isa<LLVM ::ReturnOp>(op)) {
10001002 // Move return to output block
10011003 outputBlockOps.splice (outputBlock->end (), bodyBlockOps,
10021004 Block::iterator (op));
1003- } else if (isa<memref::AllocOp>(op) || isa<memref::LoadOp>(op) ||
1004- isa<AllocOp>(op) || op.hasTrait <OpTrait::ConstantLike>()) {
1005+ } else if (llvm::isa<memref::AllocOp>(op) ||
1006+ llvm::isa<memref::LoadOp>(op) || llvm::isa<AllocOp>(op) ||
1007+ op.hasTrait <OpTrait::ConstantLike>()) {
10051008 // Move allocations and constant-like operations to entry block
10061009 entryBlock->getOperations ().splice (entryBlock->end (), bodyBlockOps,
10071010 Block::iterator (op));
0 commit comments