================ @@ -548,19 +357,16 @@ class DoConcurrentConversionPass return; } - llvm::DenseSet<fir::DoLoopOp> concurrentLoopsToSkip; + llvm::DenseSet<fir::DoConcurrentOp> concurrentLoopsToSkip; ---------------- ergawy wrote:
> I'm not certain that is guaranteed. ops are walked [in pre-order](https://github.com/llvm/llvm-project/blob/main/mlir/lib/Transforms/Utils/DialectConversion.cpp#L2679). So the parent op is guaranteed to be traversed before the nested ones. > could we instead now skip any fir::DoConcurrentOp which has an ancestor which > is a fir::DoConcurrentOp? The problem is that we clone region of the parent `do concurrent` op to the newly created set of OMP ops including any nested `do concurrent` loops. Therefore, the condition of checking for a `do concurrent` ansector will not apply anymore. I also do not like the gloabl list that much tbh. I am trying to think of a better solution. https://github.com/llvm/llvm-project/pull/138489 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits