66//
77// ===----------------------------------------------------------------------===//
88
9+ #include " flang/Optimizer/Transforms/CufOpConversion.h"
910#include " flang/Common/Fortran.h"
1011#include " flang/Optimizer/Builder/Runtime/RTBuilder.h"
1112#include " flang/Optimizer/CodeGen/TypeConverter.h"
@@ -473,9 +474,7 @@ class CufOpConversion : public fir::impl::CufOpConversionBase<CufOpConversion> {
473474 !mlir::isa<fir::BaseBoxType>(dstTy);
474475 });
475476 target.addLegalDialect <fir::FIROpsDialect, mlir::arith::ArithDialect>();
476- patterns.insert <CufAllocOpConversion>(ctx, &*dl, &typeConverter);
477- patterns.insert <CufAllocateOpConversion, CufDeallocateOpConversion,
478- CufFreeOpConversion, CufDataTransferOpConversion>(ctx);
477+ cuf::populateCUFToFIRConversionPatterns (typeConverter, *dl, patterns);
479478 if (mlir::failed (mlir::applyPartialConversion (getOperation (), target,
480479 std::move (patterns)))) {
481480 mlir::emitError (mlir::UnknownLoc::get (ctx),
@@ -485,3 +484,12 @@ class CufOpConversion : public fir::impl::CufOpConversionBase<CufOpConversion> {
485484 }
486485};
487486} // namespace
487+
488+ void cuf::populateCUFToFIRConversionPatterns (
489+ fir::LLVMTypeConverter &converter, mlir::DataLayout &dl,
490+ mlir::RewritePatternSet &patterns) {
491+ patterns.insert <CufAllocOpConversion>(patterns.getContext (), &dl, &converter);
492+ patterns.insert <CufAllocateOpConversion, CufDeallocateOpConversion,
493+ CufFreeOpConversion, CufDataTransferOpConversion>(
494+ patterns.getContext ());
495+ }
0 commit comments