[Mlir-commits] [mlir] [MLIR][OpenMP] Simplify OpenMP to LLVM dialect conversion (PR #132009)

Sergio Afonso llvmlistbot at llvm.org
Thu Mar 20 04:15:08 PDT 2025


================
@@ -295,36 +134,42 @@ void mlir::populateOpenMPToLLVMConversionPatterns(LLVMTypeConverter &converter,
       [&](omp::MapBoundsType type) -> Type { return type; });
 
   patterns.add<
-      AtomicReadOpConversion, DeclMapperOpConversion, MapInfoOpConversion,
-      MultiRegionOpConversion<omp::DeclareReductionOp>,
-      MultiRegionOpConversion<omp::PrivateClauseOp>,
-      RegionLessOpConversion<omp::CancellationPointOp>,
-      RegionLessOpConversion<omp::CancelOp>,
-      RegionLessOpConversion<omp::CriticalDeclareOp>,
-      RegionLessOpConversion<omp::DeclareMapperInfoOp>,
-      RegionLessOpConversion<omp::OrderedOp>,
-      RegionLessOpConversion<omp::ScanOp>,
-      RegionLessOpConversion<omp::TargetEnterDataOp>,
-      RegionLessOpConversion<omp::TargetExitDataOp>,
-      RegionLessOpConversion<omp::TargetUpdateOp>,
-      RegionLessOpConversion<omp::YieldOp>,
-      RegionLessOpWithVarOperandsConversion<omp::AtomicWriteOp>,
-      RegionLessOpWithVarOperandsConversion<omp::FlushOp>,
-      RegionLessOpWithVarOperandsConversion<omp::MapBoundsOp>,
-      RegionLessOpWithVarOperandsConversion<omp::ThreadprivateOp>,
-      RegionOpConversion<omp::AtomicCaptureOp>,
-      RegionOpConversion<omp::CriticalOp>,
-      RegionOpConversion<omp::DistributeOp>,
-      RegionOpConversion<omp::LoopNestOp>, RegionOpConversion<omp::LoopOp>,
-      RegionOpConversion<omp::MaskedOp>, RegionOpConversion<omp::MasterOp>,
-      RegionOpConversion<omp::OrderedRegionOp>,
-      RegionOpConversion<omp::ParallelOp>, RegionOpConversion<omp::SectionOp>,
-      RegionOpConversion<omp::SectionsOp>, RegionOpConversion<omp::SimdOp>,
-      RegionOpConversion<omp::SingleOp>, RegionOpConversion<omp::TargetDataOp>,
-      RegionOpConversion<omp::TargetOp>, RegionOpConversion<omp::TaskgroupOp>,
-      RegionOpConversion<omp::TaskloopOp>, RegionOpConversion<omp::TaskOp>,
-      RegionOpConversion<omp::TeamsOp>, RegionOpConversion<omp::WsloopOp>,
-      RegionOpWithVarOperandsConversion<omp::AtomicUpdateOp>>(converter);
+      OpenMPOpConversion<omp::AtomicCaptureOp>,
+      OpenMPOpConversion<omp::AtomicReadOp>,
+      OpenMPOpConversion<omp::AtomicUpdateOp, /*SupportsMemRefOperand=*/false>,
----------------
skatrak wrote:

Thank you for the suggestion, with that change I was able to also remove the need to manually list operations, so that's one less thing to remember adding when we create new ops.

https://github.com/llvm/llvm-project/pull/132009


More information about the Mlir-commits mailing list