diff --git a/flang/include/flang/Optimizer/Dialect/FIROps.td b/flang/include/flang/Optimizer/Dialect/FIROps.td index 41363234e5c6b..331cf9b94af7e 100644 --- a/flang/include/flang/Optimizer/Dialect/FIROps.td +++ b/flang/include/flang/Optimizer/Dialect/FIROps.td @@ -3884,9 +3884,17 @@ def fir_DoConcurrentLoopOp : fir_Op<"do_concurrent.loop", let hasVerifier = 1; let extraClassDeclaration = [{ - unsigned getNumInductionVars() { return getLowerBound().size(); } + unsigned getNumInductionVars() { + return getLowerBound().size(); + } - unsigned getNumLocalOperands() { return getLocalVars().size(); } + unsigned getNumLocalOperands() { + return getLocalVars().size(); + } + + unsigned getNumReduceOperands() { + return getReduceVars().size(); + } mlir::Block::BlockArgListType getInductionVars() { return getBody()->getArguments().slice(0, getNumInductionVars()); @@ -3906,16 +3914,6 @@ def fir_DoConcurrentLoopOp : fir_Op<"do_concurrent.loop", /// Number of operands controlling the loop unsigned getNumControlOperands() { return getLowerBound().size() * 3; } - // Get Number of reduction operands - unsigned getNumReduceOperands() { - return getReduceVars().size(); - } - - mlir::Operation::operand_range getLocalOperands() { - return getOperands() - .slice(getNumControlOperands() + getNumReduceOperands(), - getNumLocalOperands()); - } }]; } diff --git a/flang/lib/Optimizer/OpenMP/DoConcurrentConversion.cpp b/flang/lib/Optimizer/OpenMP/DoConcurrentConversion.cpp index 28f6c8bf02813..709cf1d0938fa 100644 --- a/flang/lib/Optimizer/OpenMP/DoConcurrentConversion.cpp +++ b/flang/lib/Optimizer/OpenMP/DoConcurrentConversion.cpp @@ -314,9 +314,9 @@ class DoConcurrentConversion // For `local` (and `local_init`) opernads, emit corresponding `private` // clauses and attach these clauses to the workshare loop. - if (!loop.getLocalOperands().empty()) + if (!loop.getLocalVars().empty()) for (auto [op, sym, arg] : llvm::zip_equal( - loop.getLocalOperands(), + loop.getLocalVars(), loop.getLocalSymsAttr().getAsRange(), loop.getRegionLocalArgs())) { auto localizer = mlir::SymbolTable::lookupNearestSymbolFrom<