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

Alexey Bataev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 10 11:36:50 PDT 2023


ABataev 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;
----------------
koops wrote:
> 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.
Can you perform mapLoopConstruct earlier, before  the very first checkNestingOfRegions()? Current code structure ovrcomplicates the code, makes it much harder to understand and to maintain


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

https://reviews.llvm.org/D158266



More information about the cfe-commits mailing list