[OpenMP] Codegen support for 'target parallel' on the host.
This patch adds support for codegen of 'target parallel' on the host. It is also the first combined directive that requires two or more captured statements. Support for this functionality is included in the patch. A combined directive such as 'target parallel' has two captured statements, one for the 'target' and the other for the 'parallel' region. Two captured statements are required because each has different implicit parameters (see SemaOpenMP.cpp). For example, the 'parallel' has 'global_tid' and 'bound_tid' while the 'target' does not. The patch adds support for handling multiple captured statements based on the combined directive. When codegen'ing the 'target parallel' directive, the 'target' outlined function is created using the outer captured statement and the 'parallel' outlined function is created using the inner captured statement. Reviewers: ABataev Differential Revision: https://reviews.llvm.org/D28753 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@292419 91177308-0d34-0410-b5e6-96231b3b80d8
Showing
- include/clang/AST/StmtOpenMP.h 20 additions, 0 deletionsinclude/clang/AST/StmtOpenMP.h
- include/clang/Basic/OpenMPKinds.h 5 additions, 0 deletionsinclude/clang/Basic/OpenMPKinds.h
- include/clang/Sema/Sema.h 3 additions, 0 deletionsinclude/clang/Sema/Sema.h
- lib/Basic/OpenMPKinds.cpp 70 additions, 0 deletionslib/Basic/OpenMPKinds.cpp
- lib/CodeGen/CGOpenMPRuntime.cpp 25 additions, 5 deletionslib/CodeGen/CGOpenMPRuntime.cpp
- lib/CodeGen/CGOpenMPRuntime.h 14 additions, 1 deletionlib/CodeGen/CGOpenMPRuntime.h
- lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp 13 additions, 15 deletionslib/CodeGen/CGOpenMPRuntimeNVPTX.cpp
- lib/CodeGen/CGOpenMPRuntimeNVPTX.h 20 additions, 5 deletionslib/CodeGen/CGOpenMPRuntimeNVPTX.h
- lib/CodeGen/CGStmtOpenMP.cpp 37 additions, 9 deletionslib/CodeGen/CGStmtOpenMP.cpp
- lib/CodeGen/CodeGenFunction.h 3 additions, 0 deletionslib/CodeGen/CodeGenFunction.h
- lib/Sema/SemaOpenMP.cpp 65 additions, 5 deletionslib/Sema/SemaOpenMP.cpp
- lib/Sema/TreeTransform.h 6 additions, 2 deletionslib/Sema/TreeTransform.h
- test/OpenMP/target_parallel_codegen.cpp 802 additions, 0 deletionstest/OpenMP/target_parallel_codegen.cpp
- test/OpenMP/target_parallel_codegen_registration.cpp 437 additions, 0 deletionstest/OpenMP/target_parallel_codegen_registration.cpp
- test/OpenMP/target_parallel_codegen_registration_naming.cpp 66 additions, 0 deletionstest/OpenMP/target_parallel_codegen_registration_naming.cpp
Loading
Please register or sign in to comment