diff --git a/flang/lib/Lower/Allocatable.cpp b/flang/lib/Lower/Allocatable.cpp index 15cd9770b35ba..ef16b0cd4c0f2 100644 --- a/flang/lib/Lower/Allocatable.cpp +++ b/flang/lib/Lower/Allocatable.cpp @@ -771,10 +771,11 @@ class AllocateStmtHelper { // Keep return type the same as a standard AllocatableAllocate call. mlir::Type retTy = fir::runtime::getModel()(builder.getContext()); - return builder - .create( - loc, retTy, box.getAddr(), errmsg, stream, pinned, source, cudaAttr, - errorManager.hasStatSpec() ? builder.getUnitAttr() : nullptr) + + return cuf::AllocateOp::create( + builder, loc, retTy, box.getAddr(), errmsg, stream, pinned, + source, cudaAttr, + errorManager.hasStatSpec() ? builder.getUnitAttr() : nullptr) .getResult(); } @@ -840,10 +841,9 @@ static mlir::Value genCudaDeallocate(fir::FirOpBuilder &builder, // Keep return type the same as a standard AllocatableAllocate call. mlir::Type retTy = fir::runtime::getModel()(builder.getContext()); - return builder - .create( - loc, retTy, box.getAddr(), errmsg, cudaAttr, - errorManager.hasStatSpec() ? builder.getUnitAttr() : nullptr) + return cuf::DeallocateOp::create( + builder, loc, retTy, box.getAddr(), errmsg, cudaAttr, + errorManager.hasStatSpec() ? builder.getUnitAttr() : nullptr) .getResult(); } diff --git a/flang/lib/Lower/Bridge.cpp b/flang/lib/Lower/Bridge.cpp index 059b467655358..1e88431b0eb1f 100644 --- a/flang/lib/Lower/Bridge.cpp +++ b/flang/lib/Lower/Bridge.cpp @@ -3436,8 +3436,8 @@ class FirConverter : public Fortran::lower::AbstractConverter { } } - auto op = builder->create( - loc, gridValues, blockValues, streamAddr, lbs, ubs, steps, n, + auto op = cuf::KernelOp::create( + *builder, loc, gridValues, blockValues, streamAddr, lbs, ubs, steps, n, mlir::ValueRange(reduceOperands), builder->getArrayAttr(reduceAttrs)); builder->createBlock(&op.getRegion(), op.getRegion().end(), ivTypes, ivLocs); diff --git a/flang/lib/Lower/ConvertVariable.cpp b/flang/lib/Lower/ConvertVariable.cpp index 647bd0d079985..88d17ac1ac785 100644 --- a/flang/lib/Lower/ConvertVariable.cpp +++ b/flang/lib/Lower/ConvertVariable.cpp @@ -1239,7 +1239,7 @@ static void instantiateLocal(Fortran::lower::AbstractConverter &converter, cuf::DataAttributeAttr dataAttr = Fortran::lower::translateSymbolCUFDataAttribute( builder->getContext(), *sym); - builder->create(loc, fir::getBase(exv), dataAttr); + cuf::FreeOp::create(*builder, loc, fir::getBase(exv), dataAttr); }); } } diff --git a/flang/lib/Optimizer/Builder/FIRBuilder.cpp b/flang/lib/Optimizer/Builder/FIRBuilder.cpp index eaad54eb9eec2..9867d2efecbf9 100644 --- a/flang/lib/Optimizer/Builder/FIRBuilder.cpp +++ b/flang/lib/Optimizer/Builder/FIRBuilder.cpp @@ -324,8 +324,9 @@ mlir::Value fir::FirOpBuilder::createTemporaryAlloc( getRegion().getParentOfType(); if (cudaAttr) { cuf::DataAttributeAttr attr = cuf::getDataAttribute(getContext(), cudaAttr); - return create(loc, type, /*unique_name=*/llvm::StringRef{}, - name, attr, lenParams, shape, attrs); + return cuf::AllocOp::create(*this, loc, type, + /*unique_name=*/llvm::StringRef{}, name, attr, + lenParams, shape, attrs); } else { return create(loc, type, /*unique_name=*/llvm::StringRef{}, name, pinned, lenParams, shape, attrs); diff --git a/flang/lib/Optimizer/Transforms/CUFOpConversion.cpp b/flang/lib/Optimizer/Transforms/CUFOpConversion.cpp index cd7d33091f345..9834b0499b930 100644 --- a/flang/lib/Optimizer/Transforms/CUFOpConversion.cpp +++ b/flang/lib/Optimizer/Transforms/CUFOpConversion.cpp @@ -860,10 +860,9 @@ struct CUFLaunchOpConversion if (auto global = symTab.lookup( addrOfOp.getSymbol().getRootReference().getValue())) { if (cuf::isRegisteredDeviceGlobal(global)) { - arg = rewriter - .create(op.getLoc(), - addrOfOp.getType(), - addrOfOp.getSymbol()) + arg = cuf::DeviceAddressOp::create(rewriter, op.getLoc(), + addrOfOp.getType(), + addrOfOp.getSymbol()) .getResult(); } }