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
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits