diff options
author | Alexey Bataev <a.bataev@hotmail.com> | 2017-12-08 15:03:50 +0000 |
---|---|---|
committer | Alexey Bataev <a.bataev@hotmail.com> | 2017-12-08 15:03:50 +0000 |
commit | dfa430f6947427394b48a8341621df4fd2f79998 (patch) | |
tree | 45cee41a77be1e117f66b1e1c12ad0d3d1594e5f /clang/lib/CodeGen/CodeGenFunction.h | |
parent | 44fdcec26fc7b6a98c35521f645cf1aabd7ad384 (diff) | |
download | bcm5719-llvm-dfa430f6947427394b48a8341621df4fd2f79998.tar.gz bcm5719-llvm-dfa430f6947427394b48a8341621df4fd2f79998.zip |
[OPENMP] Initial codegen for `target teams distribute` directive.
Host + default devices codegen for `target teams distribute` directive.
llvm-svn: 320149
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.h')
-rw-r--r-- | clang/lib/CodeGen/CodeGenFunction.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/clang/lib/CodeGen/CodeGenFunction.h b/clang/lib/CodeGen/CodeGenFunction.h index 1a66533f235..b3f8888befd 100644 --- a/clang/lib/CodeGen/CodeGenFunction.h +++ b/clang/lib/CodeGen/CodeGenFunction.h @@ -2897,9 +2897,14 @@ public: static void EmitOMPTargetParallelForSimdDeviceFunction( CodeGenModule &CGM, StringRef ParentName, const OMPTargetParallelForSimdDirective &S); + /// Emit device code for the target teams directive. static void EmitOMPTargetTeamsDeviceFunction(CodeGenModule &CGM, StringRef ParentName, const OMPTargetTeamsDirective &S); + /// Emit device code for the target teams distribute directive. + static void EmitOMPTargetTeamsDistributeDeviceFunction( + CodeGenModule &CGM, StringRef ParentName, + const OMPTargetTeamsDistributeDirective &S); /// Emit device code for the target simd directive. static void EmitOMPTargetSimdDeviceFunction(CodeGenModule &CGM, StringRef ParentName, @@ -2935,6 +2940,10 @@ public: const CodeGenLoopBoundsTy &CodeGenLoopBounds, const CodeGenDispatchBoundsTy &CGDispatchBounds); + /// Emit code for the distribute loop-based directive. + void EmitOMPDistributeLoop(const OMPLoopDirective &S, + const CodeGenLoopTy &CodeGenLoop, Expr *IncExpr); + /// Helpers for the OpenMP loop directives. void EmitOMPSimdInit(const OMPLoopDirective &D, bool IsMonotonic = false); void EmitOMPSimdFinal( @@ -2951,9 +2960,6 @@ private: llvm::Value *EmitBlockLiteral(const CGBlockInfo &Info, llvm::Function **InvokeF = nullptr); - void EmitOMPDistributeLoop(const OMPLoopDirective &S, - const CodeGenLoopTy &CodeGenLoop, Expr *IncExpr); - /// struct with the values to be passed to the OpenMP loop-related functions struct OMPLoopArguments { /// loop lower bound |