[flang-commits] [flang] [flang][OpenMP] Update all `lastprivate` symbols, not just in clauses (PR #125628)
Tom Eccles via flang-commits
flang-commits at lists.llvm.org
Tue Feb 4 03:29:14 PST 2025
================
@@ -235,82 +238,85 @@ void DataSharingProcessor::insertLastPrivateCompare(mlir::Operation *op) {
if (auto wrapper = mlir::dyn_cast<mlir::omp::LoopWrapperInterface>(op))
loopOp = mlir::cast<mlir::omp::LoopNestOp>(wrapper.getWrappedLoop());
- bool cmpCreated = false;
mlir::OpBuilder::InsertionGuard guard(firOpBuilder);
- for (const omp::Clause &clause : clauses) {
- if (clause.id != llvm::omp::OMPC_lastprivate)
- continue;
- if (mlir::isa<mlir::omp::WsloopOp>(op) ||
- mlir::isa<mlir::omp::SimdOp>(op)) {
- // Update the original variable just before exiting the worksharing
- // loop. Conversion as follows:
- //
- // omp.wsloop / omp.simd { omp.wsloop / omp.simd {
- // omp.loop_nest { omp.loop_nest {
- // ... ...
- // store ===> store
- // omp.yield %v = arith.addi %iv, %step
- // } %cmp = %step < 0 ? %v < %ub : %v > %ub
- // } fir.if %cmp {
- // fir.store %v to %loopIV
- // ^%lpv_update_blk:
- // }
- // omp.yield
- // }
- // }
-
- // Only generate the compare once in presence of multiple LastPrivate
- // clauses.
- if (cmpCreated)
- continue;
- cmpCreated = true;
----------------
tblah wrote:
Why did you remove this part?
https://github.com/llvm/llvm-project/pull/125628
More information about the flang-commits
mailing list