aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/CodeGen/CodeGenFunction.cpp
diff options
context:
space:
mode:
authorGeorge Rokos <georgios.rokos@intel.com>2020-10-16 14:39:30 -0700
committerGeorge Rokos <georgios.rokos@intel.com>2020-10-16 16:14:01 -0700
commit5adb3a6d86eecade2cb94b1a04d35e673d4e5866 (patch)
tree62dca46ca863c6b39bdbe9020b6e22ac3cf15405 /clang/lib/CodeGen/CodeGenFunction.cpp
parentefd02c1548ee458d59063f6393e94e972b5c3d50 (diff)
downloadllvm-5adb3a6d86eecade2cb94b1a04d35e673d4e5866.zip
llvm-5adb3a6d86eecade2cb94b1a04d35e673d4e5866.tar.gz
llvm-5adb3a6d86eecade2cb94b1a04d35e673d4e5866.tar.bz2
[libomptarget] Fix copy-to motion for PTR_AND_OBJ entries where PTR is a struct member.
This patch fixes a problem whereby the pointee object of a PTR_AND_OBJ entry with a `map(to)` motion clause can be overwritten on the device even if its reference counter is >=1. Currently, we check the reference counter of the parent struct in order to determine whether the motion clause should be respected, but since the pointee object is not part of the struct, it's got its own reference counter which should be used to enqueue the copy or discard it. The same behavior has already been implemented in targetDataEnd (omptarget.cpp:539-540), but we somehow missed doing the same in targetDataBegin. Differential Revision: https://reviews.llvm.org/D89597
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
0 files changed, 0 insertions, 0 deletions