ABataev added inline comments.
================ Comment at: lib/CodeGen/CGOpenMPRuntime.cpp:5122 + NewTask = CGF.EmitRuntimeCall( + createRuntimeFunction(OMPRTL__kmpc_omp_target_task_alloc), AllocArgs); + } else { ---------------- gtbercea wrote: > ABataev wrote: > > gtbercea wrote: > > > ABataev wrote: > > > > gtbercea wrote: > > > > > ABataev wrote: > > > > > > Can we use the same function in both modes, with nowait clause and > > > > > > without? > > > > > For nowait we need to use the target_task_alloc variant. There are > > > > > runtimes - other than the open source one - for which this function > > > > > does something different. > > > > Trunk relies only to libomptarget interfaces. Why we should take into > > > > account some other runtime libraries? Plus, what's so different for > > > > async and non-async versions of the directive? > > > Async is not yet fully supported in the OpenMP open source runtime but at > > > some point it will be. This is the first step towards its support. I'm > > > not sure what your objection is. The difference is clear. Device ID must > > > be passed on the async version of this call. > > The difference is not obvious. Why we can't use the same function for sync > > directives? The fact the it has DeviceId parameter is not an argument here. > > What's so special from functional point of view? > When you have multiple device on the same system you have to be able to > distinguish between then and manage dependencies across these different > devices. Knowing the device is a crucial first step in handling these > inter-device dependencies. Ok, this is why we need it for async version. But why we can't use for sync version? Repository: rC Clang CHANGES SINCE LAST ACTION https://reviews.llvm.org/D63009/new/ https://reviews.llvm.org/D63009 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits