[flang] [llvm] [flang][OpenMP] Try to unify induction var privatization for OMP regions. (PR #91116)

via llvm-commits llvm-commits at lists.llvm.org
Thu May 16 07:14:13 PDT 2024


================
@@ -289,12 +290,34 @@ void DataSharingProcessor::collectSymbolsInNestedRegions(
        eval.getNestedEvaluations()) {
     if (nestedEval.hasNestedEvaluations()) {
       if (nestedEval.isConstruct())
-        // Recursively look for OpenMP constructs within `nestedEval`'s region
         collectSymbolsInNestedRegions(nestedEval, flag, symbolsInNestedRegions);
-      else
-        converter.collectSymbolSet(nestedEval, symbolsInNestedRegions, flag,
-                                   /*collectSymbols=*/true,
-                                   /*collectHostAssociatedSymbols=*/false);
+      else {
+        bool isOrderedConstruct = [&]() {
----------------
NimishMishra wrote:

I have a small question. I am not able to map how control-flow is coming to `collectSymbolsInNestedRegions` and other functionality, which is related to default clause. When I try a simple example as:

```
program main

  integer :: a(5)
  !$omp do ordered default(private) 
  do i = 2, 10
  end do
  !$omp end do
end program main
```

I get semantic error as: `error: DEFAULT clause is not allowed on the DO directive`

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


More information about the llvm-commits mailing list