carlo.bertolli added inline comments.

================
Comment at: clang/lib/CodeGen/CGStmtOpenMP.cpp:7791
+    OpenMPBindClauseKind bindParam = C->getBindKind();
+    switch (bindParam) {
+    case OMPC_BIND_parallel: {
----------------
carlo.bertolli wrote:
> koops wrote:
> > carlo.bertolli wrote:
> > > What if you have something like this:
> > > 
> > > void foo(..) {
> > >   #pragma omp loop
> > >   for (..) {
> > >   }
> > > }
> > > 
> > > int main() {
> > > 
> > >   #pragma omp target teams
> > >   {
> > >     ...
> > >     foo();
> > >    }
> > > 
> > >   #pragma omp target
> > >    {
> > >       #pragma omp parallel
> > >       {
> > >          foo();
> > >       }
> > > }
> > > 
> > > In the first invocation, loop is bound to teams. In the second, loop is 
> > > bound to parallel.
> > > This is a runtime condition.
> > > 
> > > I *believe* that not even OpenMP 6.0 TR1 allows us to decide at compile 
> > > time if loop should be treated as worksharing or workdistribution....but 
> > > I might be wrong.
> > > 
> > > Thanks!
> > The loop directive does not have a bind clause. If you examine the current 
> > patch it takes care to preserve the old structure as is and the binding is 
> > done by default during runtime.
> Do you mean that this patch adds up to existing support - adding support for 
> bind - and that existing support is already based on runtime support to 
> decide on the case I mentioned?
Disregard my comment: essentially, loop cannot be orphaned in the way I 
described.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D144634

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to