From c692a11e69d97d0ace89157515aefd103043d33a Mon Sep 17 00:00:00 2001 From: River Riddle Date: Fri, 30 Sep 2022 16:06:29 -0700 Subject: [PATCH] [mlir] Flip Async/GPU/MemRef/OpenACC/OpenMP/PDL dialects to prefixed This flips all of the remaining dialects to prefixed except for linalg, which will be done in a followup. Differential Revision: https://reviews.llvm.org/D134995 --- flang/lib/Lower/OpenACC.cpp | 18 ++++---- flang/lib/Lower/OpenMP.cpp | 48 +++++++++++----------- flang/lib/Optimizer/Transforms/AffineDemotion.cpp | 2 +- mlir/include/mlir/Dialect/Async/IR/AsyncDialect.td | 3 -- mlir/include/mlir/Dialect/GPU/IR/GPUBase.td | 3 -- mlir/include/mlir/Dialect/MemRef/IR/MemRefBase.td | 2 - mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td | 3 -- mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td | 3 -- mlir/include/mlir/Dialect/PDL/IR/PDLDialect.td | 3 -- .../MemRef/Transforms/FoldMemRefAliasOps.cpp | 10 ++--- .../Transforms/SimplifyExtractStridedMetadata.cpp | 2 +- 11 files changed, 41 insertions(+), 56 deletions(-) diff --git a/flang/lib/Lower/OpenACC.cpp b/flang/lib/Lower/OpenACC.cpp index 89c7d00..a0d7f88 100644 --- a/flang/lib/Lower/OpenACC.cpp +++ b/flang/lib/Lower/OpenACC.cpp @@ -820,9 +820,9 @@ genACCEnterDataOp(Fortran::lower::AbstractConverter &converter, firOpBuilder, currentLocation, operands, operandSegments); if (addAsyncAttr) - enterDataOp.asyncAttr(firOpBuilder.getUnitAttr()); + enterDataOp.setAsyncAttr(firOpBuilder.getUnitAttr()); if (addWaitAttr) - enterDataOp.waitAttr(firOpBuilder.getUnitAttr()); + enterDataOp.setWaitAttr(firOpBuilder.getUnitAttr()); } static void @@ -896,11 +896,11 @@ genACCExitDataOp(Fortran::lower::AbstractConverter &converter, firOpBuilder, currentLocation, operands, operandSegments); if (addAsyncAttr) - exitDataOp.asyncAttr(firOpBuilder.getUnitAttr()); + exitDataOp.setAsyncAttr(firOpBuilder.getUnitAttr()); if (addWaitAttr) - exitDataOp.waitAttr(firOpBuilder.getUnitAttr()); + exitDataOp.setWaitAttr(firOpBuilder.getUnitAttr()); if (addFinalizeAttr) - exitDataOp.finalizeAttr(firOpBuilder.getUnitAttr()); + exitDataOp.setFinalizeAttr(firOpBuilder.getUnitAttr()); } template @@ -1010,11 +1010,11 @@ genACCUpdateOp(Fortran::lower::AbstractConverter &converter, firOpBuilder, currentLocation, operands, operandSegments); if (addAsyncAttr) - updateOp.asyncAttr(firOpBuilder.getUnitAttr()); + updateOp.setAsyncAttr(firOpBuilder.getUnitAttr()); if (addWaitAttr) - updateOp.waitAttr(firOpBuilder.getUnitAttr()); + updateOp.setWaitAttr(firOpBuilder.getUnitAttr()); if (addIfPresentAttr) - updateOp.ifPresentAttr(firOpBuilder.getUnitAttr()); + updateOp.setIfPresentAttr(firOpBuilder.getUnitAttr()); } static void @@ -1116,7 +1116,7 @@ static void genACC(Fortran::lower::AbstractConverter &converter, firOpBuilder, currentLocation, operands, operandSegments); if (addAsyncAttr) - waitOp.asyncAttr(firOpBuilder.getUnitAttr()); + waitOp.setAsyncAttr(firOpBuilder.getUnitAttr()); } void Fortran::lower::genOpenACCConstruct( diff --git a/flang/lib/Lower/OpenMP.cpp b/flang/lib/Lower/OpenMP.cpp index ae21ae9..cf7b54d 100644 --- a/flang/lib/Lower/OpenMP.cpp +++ b/flang/lib/Lower/OpenMP.cpp @@ -112,7 +112,8 @@ static bool privatizeVars(Op &op, Fortran::lower::AbstractConverter &converter, // TODO: Add lastprivate support for sections construct, simd construct if (std::is_same_v) { omp::WsLoopOp *wsLoopOp = dyn_cast(&op); - mlir::Operation *lastOper = wsLoopOp->region().back().getTerminator(); + mlir::Operation *lastOper = + wsLoopOp->getRegion().back().getTerminator(); firOpBuilder.setInsertionPoint(lastOper); // Our goal here is to introduce the following control flow @@ -150,7 +151,7 @@ static bool privatizeVars(Op &op, Fortran::lower::AbstractConverter &converter, cmpOp = firOpBuilder.create( wsLoopOp->getLoc(), mlir::arith::CmpIPredicate::eq, wsLoopOp->getRegion().front().getArguments()[0], - wsLoopOp->upperBound()[0]); + wsLoopOp->getUpperBound()[0]); } mlir::scf::IfOp ifOp = firOpBuilder.create( wsLoopOp->getLoc(), cmpOp, /*else*/ false); @@ -286,7 +287,7 @@ static void threadPrivatizeVars(Fortran::lower::AbstractConverter &converter, assert(mlir::isa(op) && "The threadprivate operation not created"); mlir::Value symValue = - mlir::dyn_cast(op).sym_addr(); + mlir::dyn_cast(op).getSymAddr(); return firOpBuilder.create( currentLocation, symValue.getType(), symValue); }; @@ -908,17 +909,18 @@ static omp::ReductionDeclareOp createReductionDecl( modBuilder.create(loc, reductionOpName, type); else return decl; - builder.createBlock(&decl.initializerRegion(), decl.initializerRegion().end(), - {type}, {loc}); - builder.setInsertionPointToEnd(&decl.initializerRegion().back()); + builder.createBlock(&decl.getInitializerRegion(), + decl.getInitializerRegion().end(), {type}, {loc}); + builder.setInsertionPointToEnd(&decl.getInitializerRegion().back()); Value init = getReductionInitValue(loc, type, reductionOpName, builder); builder.create(loc, init); - builder.createBlock(&decl.reductionRegion(), decl.reductionRegion().end(), - {type, type}, {loc, loc}); - builder.setInsertionPointToEnd(&decl.reductionRegion().back()); - mlir::Value op1 = decl.reductionRegion().front().getArgument(0); - mlir::Value op2 = decl.reductionRegion().front().getArgument(1); + builder.createBlock(&decl.getReductionRegion(), + decl.getReductionRegion().end(), {type, type}, + {loc, loc}); + builder.setInsertionPointToEnd(&decl.getReductionRegion().back()); + mlir::Value op1 = decl.getReductionRegion().front().getArgument(0); + mlir::Value op2 = decl.getReductionRegion().front().getArgument(1); Value reductionOp; switch (intrinsicOp) { @@ -1156,7 +1158,7 @@ static void genOMP(Fortran::lower::AbstractConverter &converter, "Reduction of some types is not supported"); } reductionDeclSymbols.push_back(SymbolRefAttr::get( - firOpBuilder.getContext(), decl.sym_name())); + firOpBuilder.getContext(), decl.getSymName())); } } } @@ -1232,10 +1234,10 @@ static void genOMP(Fortran::lower::AbstractConverter &converter, const auto *expr = Fortran::semantics::GetExpr(orderedClause->v); const std::optional orderedClauseValue = Fortran::evaluate::ToInt64(*expr); - wsLoopOp.ordered_valAttr( + wsLoopOp.setOrderedValAttr( firOpBuilder.getI64IntegerAttr(*orderedClauseValue)); } else { - wsLoopOp.ordered_valAttr(firOpBuilder.getI64IntegerAttr(0)); + wsLoopOp.setOrderedValAttr(firOpBuilder.getI64IntegerAttr(0)); } } else if (const auto &scheduleClause = std::get_if( @@ -1247,34 +1249,34 @@ static void genOMP(Fortran::lower::AbstractConverter &converter, scheduleType.t); switch (scheduleKind) { case Fortran::parser::OmpScheduleClause::ScheduleType::Static: - wsLoopOp.schedule_valAttr(omp::ClauseScheduleKindAttr::get( + wsLoopOp.setScheduleValAttr(omp::ClauseScheduleKindAttr::get( context, omp::ClauseScheduleKind::Static)); break; case Fortran::parser::OmpScheduleClause::ScheduleType::Dynamic: - wsLoopOp.schedule_valAttr(omp::ClauseScheduleKindAttr::get( + wsLoopOp.setScheduleValAttr(omp::ClauseScheduleKindAttr::get( context, omp::ClauseScheduleKind::Dynamic)); break; case Fortran::parser::OmpScheduleClause::ScheduleType::Guided: - wsLoopOp.schedule_valAttr(omp::ClauseScheduleKindAttr::get( + wsLoopOp.setScheduleValAttr(omp::ClauseScheduleKindAttr::get( context, omp::ClauseScheduleKind::Guided)); break; case Fortran::parser::OmpScheduleClause::ScheduleType::Auto: - wsLoopOp.schedule_valAttr(omp::ClauseScheduleKindAttr::get( + wsLoopOp.setScheduleValAttr(omp::ClauseScheduleKindAttr::get( context, omp::ClauseScheduleKind::Auto)); break; case Fortran::parser::OmpScheduleClause::ScheduleType::Runtime: - wsLoopOp.schedule_valAttr(omp::ClauseScheduleKindAttr::get( + wsLoopOp.setScheduleValAttr(omp::ClauseScheduleKindAttr::get( context, omp::ClauseScheduleKind::Runtime)); break; } mlir::omp::ScheduleModifier scheduleModifier = getScheduleModifier(scheduleClause->v); if (scheduleModifier != mlir::omp::ScheduleModifier::none) - wsLoopOp.schedule_modifierAttr( + wsLoopOp.setScheduleModifierAttr( omp::ScheduleModifierAttr::get(context, scheduleModifier)); if (getSIMDModifier(scheduleClause->v) != mlir::omp::ScheduleModifier::none) - wsLoopOp.simd_modifierAttr(firOpBuilder.getUnitAttr()); + wsLoopOp.setSimdModifierAttr(firOpBuilder.getUnitAttr()); } } // In FORTRAN `nowait` clause occur at the end of `omp do` directive. @@ -1289,7 +1291,7 @@ static void genOMP(Fortran::lower::AbstractConverter &converter, std::get((*endClauseList).t); for (const Fortran::parser::OmpClause &clause : clauseList.v) if (std::get_if(&clause.u)) - wsLoopOp.nowaitAttr(firOpBuilder.getUnitAttr()); + wsLoopOp.setNowaitAttr(firOpBuilder.getUnitAttr()); } createBodyOfOp(wsLoopOp, converter, currentLocation, eval, @@ -1333,7 +1335,7 @@ genOMP(Fortran::lower::AbstractConverter &converter, currentLocation, name, hint); return firOpBuilder.create( currentLocation, mlir::FlatSymbolRefAttr::get( - firOpBuilder.getContext(), global.sym_name())); + firOpBuilder.getContext(), global.getSymName())); } }(); createBodyOfOp(criticalOp, converter, currentLocation, eval); diff --git a/flang/lib/Optimizer/Transforms/AffineDemotion.cpp b/flang/lib/Optimizer/Transforms/AffineDemotion.cpp index 152571f9..8e896a5 100644 --- a/flang/lib/Optimizer/Transforms/AffineDemotion.cpp +++ b/flang/lib/Optimizer/Transforms/AffineDemotion.cpp @@ -135,7 +135,7 @@ public: matchAndRewrite(memref::AllocOp op, mlir::PatternRewriter &rewriter) const override { rewriter.replaceOpWithNewOp(op, convertMemRef(op.getType()), - op.memref()); + op.getMemref()); return success(); } }; diff --git a/mlir/include/mlir/Dialect/Async/IR/AsyncDialect.td b/mlir/include/mlir/Dialect/Async/IR/AsyncDialect.td index d22e7a2..e3b4db4 100644 --- a/mlir/include/mlir/Dialect/Async/IR/AsyncDialect.td +++ b/mlir/include/mlir/Dialect/Async/IR/AsyncDialect.td @@ -38,9 +38,6 @@ def AsyncDialect : Dialect { static constexpr StringRef kAllowedToBlockAttrName = "async.allowed_to_block"; }]; - - // TODO: Prefixed form overlaps with generated names, update before flipping. - let emitAccessorPrefix = kEmitAccessorPrefix_Both; } #endif // ASYNC_DIALECT_TD diff --git a/mlir/include/mlir/Dialect/GPU/IR/GPUBase.td b/mlir/include/mlir/Dialect/GPU/IR/GPUBase.td index 263e51c..31fc168 100644 --- a/mlir/include/mlir/Dialect/GPU/IR/GPUBase.td +++ b/mlir/include/mlir/Dialect/GPU/IR/GPUBase.td @@ -56,9 +56,6 @@ def GPU_Dialect : Dialect { let dependentDialects = ["arith::ArithDialect"]; let useDefaultAttributePrinterParser = 1; let useDefaultTypePrinterParser = 1; - - // TODO: Update this to _Prefixed. - let emitAccessorPrefix = kEmitAccessorPrefix_Both; } def GPU_AsyncToken : DialectType< diff --git a/mlir/include/mlir/Dialect/MemRef/IR/MemRefBase.td b/mlir/include/mlir/Dialect/MemRef/IR/MemRefBase.td index a62af7c..3be84ae 100644 --- a/mlir/include/mlir/Dialect/MemRef/IR/MemRefBase.td +++ b/mlir/include/mlir/Dialect/MemRef/IR/MemRefBase.td @@ -21,8 +21,6 @@ def MemRef_Dialect : Dialect { }]; let dependentDialects = ["arith::ArithDialect"]; let hasConstantMaterializer = 1; - - let emitAccessorPrefix = kEmitAccessorPrefix_Both; } #endif // MEMREF_BASE diff --git a/mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td b/mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td index d69e252..9203e8b 100644 --- a/mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td +++ b/mlir/include/mlir/Dialect/OpenACC/OpenACCOps.td @@ -27,9 +27,6 @@ def OpenACC_Dialect : Dialect { let useDefaultAttributePrinterParser = 1; let cppNamespace = "::mlir::acc"; - - // TODO: Flip to _Prefixed. - let emitAccessorPrefix = kEmitAccessorPrefix_Both; } // AccCommon requires definition of OpenACC_Dialect. diff --git a/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td b/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td index 7652f62..a1d9df7 100644 --- a/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td +++ b/mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td @@ -28,9 +28,6 @@ def OpenMP_Dialect : Dialect { let cppNamespace = "::mlir::omp"; let dependentDialects = ["::mlir::LLVM::LLVMDialect"]; let useDefaultAttributePrinterParser = 1; - - // TODO: Flip to _Prefixed. - let emitAccessorPrefix = kEmitAccessorPrefix_Both; } // OmpCommon requires definition of OpenACC_Dialect. diff --git a/mlir/include/mlir/Dialect/PDL/IR/PDLDialect.td b/mlir/include/mlir/Dialect/PDL/IR/PDLDialect.td index 3aa1d65..d405bec 100644 --- a/mlir/include/mlir/Dialect/PDL/IR/PDLDialect.td +++ b/mlir/include/mlir/Dialect/PDL/IR/PDLDialect.td @@ -69,9 +69,6 @@ def PDL_Dialect : Dialect { let extraClassDeclaration = [{ void registerTypes(); }]; - - // FIXME: Flip to prefixed. - let emitAccessorPrefix = kEmitAccessorPrefix_Both; } #endif // MLIR_DIALECT_PDL_IR_PDLDIALECT diff --git a/mlir/lib/Dialect/MemRef/Transforms/FoldMemRefAliasOps.cpp b/mlir/lib/Dialect/MemRef/Transforms/FoldMemRefAliasOps.cpp index bbf0818..8357ec4 100644 --- a/mlir/lib/Dialect/MemRef/Transforms/FoldMemRefAliasOps.cpp +++ b/mlir/lib/Dialect/MemRef/Transforms/FoldMemRefAliasOps.cpp @@ -333,13 +333,13 @@ LogicalResult LoadOpOfSubViewOpFolder::matchAndRewrite( llvm::TypeSwitch(loadOp) .Case([&](auto op) { - rewriter.replaceOpWithNewOp(loadOp, subViewOp.source(), + rewriter.replaceOpWithNewOp(loadOp, subViewOp.getSource(), sourceIndices); }) .Case([&](vector::TransferReadOp transferReadOp) { rewriter.replaceOpWithNewOp( - transferReadOp, transferReadOp.getVectorType(), subViewOp.source(), - sourceIndices, + transferReadOp, transferReadOp.getVectorType(), + subViewOp.getSource(), sourceIndices, getPermutationMapAttr(rewriter.getContext(), subViewOp, transferReadOp.getPermutationMap()), transferReadOp.getPadding(), @@ -440,11 +440,11 @@ LogicalResult StoreOpOfSubViewOpFolder::matchAndRewrite( llvm::TypeSwitch(storeOp) .Case([&](auto op) { rewriter.replaceOpWithNewOp( - storeOp, storeOp.getValue(), subViewOp.source(), sourceIndices); + storeOp, storeOp.getValue(), subViewOp.getSource(), sourceIndices); }) .Case([&](vector::TransferWriteOp op) { rewriter.replaceOpWithNewOp( - op, op.getValue(), subViewOp.source(), sourceIndices, + op, op.getValue(), subViewOp.getSource(), sourceIndices, getPermutationMapAttr(rewriter.getContext(), subViewOp, op.getPermutationMap()), op.getInBoundsAttr()); diff --git a/mlir/lib/Dialect/MemRef/Transforms/SimplifyExtractStridedMetadata.cpp b/mlir/lib/Dialect/MemRef/Transforms/SimplifyExtractStridedMetadata.cpp index 5a14578..257a02b 100644 --- a/mlir/lib/Dialect/MemRef/Transforms/SimplifyExtractStridedMetadata.cpp +++ b/mlir/lib/Dialect/MemRef/Transforms/SimplifyExtractStridedMetadata.cpp @@ -721,7 +721,7 @@ class RewriteExtractAlignedPointerAsIndexOfViewLikeOp if (!viewLikeOp) return rewriter.notifyMatchFailure(extractOp, "not a ViewLike source"); rewriter.updateRootInPlace(extractOp, [&]() { - extractOp.sourceMutable().assign(viewLikeOp.getViewSource()); + extractOp.getSourceMutable().assign(viewLikeOp.getViewSource()); }); return success(); } -- 2.7.4