[Openmp-commits] [PATCH] D105812: [libomptarget] Update device pointer only if needed
George Rokos via Phabricator via Openmp-commits
openmp-commits at lists.llvm.org
Tue Jul 13 04:19:29 PDT 2021
grokos marked an inline comment as done.
grokos added inline comments.
================
Comment at: openmp/libomptarget/test/mapping/device_ptr_update.c:20
+#pragma omp target enter data map(alloc:s1.p[0:10])
+
+ // DEBUG-NOT: Update pointer ([[DEV_PTR]]) -> {{\[}}[[DEV_OBJ_A]]{{\]}}
----------------
jdenny wrote:
> Assume we insert `s1.p = B` here. Without this patch, the target directive below then changes `s1.p` on the device, but it doesn't with this patch, right?
>
> However, I don't think OpenMP permits that line to be inserted in the case of C/C++:
>
> > A pointer that has a corresponding attached pointer must not be modified for the duration of the lifetime of the list item to which the corresponding pointer is attached in the device data environment.
>
> This patch can then be considered as purely an optimization, right?
Right. Since the pointer on the host is not allowed to be reassigned to another object while the PTR_AND_OBJ pair is mapped on the device, we can take advantage of this restriction and optimize away all redundant device pointer updates.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D105812/new/
https://reviews.llvm.org/D105812
More information about the Openmp-commits
mailing list