diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2020-05-25 16:06:31 -0400 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2020-06-11 09:54:51 -0400 |
commit | 90b54fa045e3f8711e0bfb2d22626b28fd3b131f (patch) | |
tree | 86ca567f83ffe5ca1a4b4ee7456841e63e773be9 /clang/lib/CodeGen/CodeGenFunction.h | |
parent | 69bdfb075b293c4b3363f2dc0ac732ca03c3c9ca (diff) | |
download | llvm-90b54fa045e3f8711e0bfb2d22626b28fd3b131f.zip llvm-90b54fa045e3f8711e0bfb2d22626b28fd3b131f.tar.gz llvm-90b54fa045e3f8711e0bfb2d22626b28fd3b131f.tar.bz2 |
[OPENMP50]Codegen for use_device_addr clauses.
Summary:
Added codegen for use_device_addr clause. The components of the list
items are mapped as a kind of RETURN components and then the returned
base address is used instead of the real address of the base declaration
used in the use_device_addr expressions.
Reviewers: jdoerfert
Subscribers: yaxunl, guansong, sstefan1, cfe-commits, caomhin
Tags: #clang
Differential Revision: https://reviews.llvm.org/D80730
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.h')
-rw-r--r-- | clang/lib/CodeGen/CodeGenFunction.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h index 48b2368..8ce5c00 100644 --- a/clang/lib/CodeGen/CodeGenFunction.h +++ b/clang/lib/CodeGen/CodeGenFunction.h @@ -76,6 +76,8 @@ class ObjCAtTryStmt; class ObjCAtThrowStmt; class ObjCAtSynchronizedStmt; class ObjCAutoreleasePoolStmt; +class OMPUseDevicePtrClause; +class OMPUseDeviceAddrClause; class ReturnsNonNullAttr; class SVETypeFlags; @@ -3173,7 +3175,10 @@ public: void EmitOMPPrivateClause(const OMPExecutableDirective &D, OMPPrivateScope &PrivateScope); void EmitOMPUseDevicePtrClause( - const OMPClause &C, OMPPrivateScope &PrivateScope, + const OMPUseDevicePtrClause &C, OMPPrivateScope &PrivateScope, + const llvm::DenseMap<const ValueDecl *, Address> &CaptureDeviceAddrMap); + void EmitOMPUseDeviceAddrClause( + const OMPUseDeviceAddrClause &C, OMPPrivateScope &PrivateScope, const llvm::DenseMap<const ValueDecl *, Address> &CaptureDeviceAddrMap); /// Emit code for copyin clause in \a D directive. The next code is /// generated at the start of outlined functions for directives: |