[PATCH] D158266: [OpenMP] Patch for Support to loop bind clause : Checking Parent Region

Sunil K via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 10 11:22:32 PDT 2023


koops added inline comments.


================
Comment at: clang/lib/Sema/SemaOpenMP.cpp:6181-6190
+      checkNestingOfRegions(*this, DSAStack, Kind, DirName, CancelRegion,
+                            BindKind, StartLoc);
       Kind = OMPD_for;
       DSAStack->setCurrentDirective(OMPD_for);
       DSAStack->setMappedDirective(OMPD_loop);
       PrevMappedDirective = OMPD_loop;
       break;
----------------
ABataev wrote:
> Need to drop these extra calls of checkNestingOfRegions(), all check must be handled in the single call. Can we do it?
1) Default binding in "#pragma omp loop" is handled in the beginning of mapLoopConstruct.
#pragma omp parallel
....
#pragma omp loop
...
indicates "omp loop" will be "omp loop bind(parallel)". So, I cannot call checkNestingOfRegions() before call to mapLoopConstruct()
2) In mapLoopConstruct the directive/construct of "omp loop" is changed to other directives like "omp for". So, it is not possible to call checkNestingOfRegions() after the call to mapLoopConstruct.
Because of the above 2 reasons the current code seems correct. Please let me know if you have any alternative in mind.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D158266/new/

https://reviews.llvm.org/D158266



More information about the cfe-commits mailing list