koops added inline comments.
================ Comment at: clang/lib/CodeGen/CGStmtOpenMP.cpp:7791 + OpenMPBindClauseKind bindParam = C->getBindKind(); + switch (bindParam) { + case OMPC_BIND_parallel: { ---------------- 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. 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