6
6
//
7
7
// ===----------------------------------------------------------------------===//
8
8
9
+ #include " flang/Optimizer/Transforms/CufOpConversion.h"
9
10
#include " flang/Common/Fortran.h"
10
11
#include " flang/Optimizer/Builder/Runtime/RTBuilder.h"
11
12
#include " flang/Optimizer/CodeGen/TypeConverter.h"
@@ -473,9 +474,7 @@ class CufOpConversion : public fir::impl::CufOpConversionBase<CufOpConversion> {
473
474
!mlir::isa<fir::BaseBoxType>(dstTy);
474
475
});
475
476
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);
479
478
if (mlir::failed (mlir::applyPartialConversion (getOperation (), target,
480
479
std::move (patterns)))) {
481
480
mlir::emitError (mlir::UnknownLoc::get (ctx),
@@ -485,3 +484,12 @@ class CufOpConversion : public fir::impl::CufOpConversionBase<CufOpConversion> {
485
484
}
486
485
};
487
486
} // 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