[OpenMP][CodeGen] Add codegen for combined 'loop' directives.
authorDave Pagan <dave.pagan@amd.com>
Sun, 2 Jul 2023 00:10:28 +0000 (19:10 -0500)
committerDave Pagan <dave.pagan@amd.com>
Wed, 5 Jul 2023 17:31:59 +0000 (12:31 -0500)
commiteb61bde829bcd33346bc70c87fcfe321627bbc31
treecfc58222cd41b3208dc7ff82eb92446606fb7f50
parent73c12a8ffc553eb0c40ecbb522c289314783344e
[OpenMP][CodeGen] Add codegen for combined 'loop' directives.

The loop directive is a descriptive construct which allows the compiler
flexibility in how it generates code for the directive's associated
loop(s). See OpenMP specification 5.2 [257:8-9].

Codegen added in this patch for the combined 'loop' directives are:

'target teams loop'     -> 'target teams distribute parallel for'
'teams loop'            -> 'teams distribute parallel for'
'target parallel loop'  -> 'target parallel for'
'parallel loop'         -> 'parallel for'

NOTE: The implementation of the 'loop' directive itself is unchanged.

Differential Revision: https://reviews.llvm.org/D145823
32 files changed:
clang/lib/AST/StmtOpenMP.cpp
clang/lib/Basic/OpenMPKinds.cpp
clang/lib/CodeGen/CGOpenMPRuntime.cpp
clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
clang/lib/CodeGen/CGStmt.cpp
clang/lib/CodeGen/CGStmtOpenMP.cpp
clang/lib/CodeGen/CodeGenFunction.h
clang/lib/Sema/SemaOpenMP.cpp
clang/test/OpenMP/generic_loop_codegen.cpp [new file with mode: 0644]
clang/test/OpenMP/nvptx_target_teams_generic_loop_codegen.cpp [new file with mode: 0644]
clang/test/OpenMP/nvptx_target_teams_generic_loop_generic_mode_codegen.cpp [new file with mode: 0644]
clang/test/OpenMP/parallel_generic_loop_codegen.cpp [new file with mode: 0644]
clang/test/OpenMP/target_parallel_generic_loop_codegen-1.cpp [new file with mode: 0644]
clang/test/OpenMP/target_parallel_generic_loop_codegen-2.cpp [new file with mode: 0644]
clang/test/OpenMP/target_parallel_generic_loop_codegen-3.cpp [new file with mode: 0644]
clang/test/OpenMP/target_parallel_generic_loop_codegen.cpp [new file with mode: 0644]
clang/test/OpenMP/target_parallel_generic_loop_depend_codegen.cpp [new file with mode: 0644]
clang/test/OpenMP/target_parallel_generic_loop_uses_allocators_codegen.cpp [new file with mode: 0644]
clang/test/OpenMP/target_teams_generic_loop_codegen-1.cpp [new file with mode: 0644]
clang/test/OpenMP/target_teams_generic_loop_codegen.cpp [new file with mode: 0644]
clang/test/OpenMP/target_teams_generic_loop_collapse_codegen.cpp [new file with mode: 0644]
clang/test/OpenMP/target_teams_generic_loop_depend_codegen.cpp [new file with mode: 0644]
clang/test/OpenMP/target_teams_generic_loop_if_codegen.cpp [new file with mode: 0644]
clang/test/OpenMP/target_teams_generic_loop_order_codegen.cpp [new file with mode: 0644]
clang/test/OpenMP/target_teams_generic_loop_private_codegen.cpp [new file with mode: 0644]
clang/test/OpenMP/target_teams_generic_loop_reduction_codegen.cpp [new file with mode: 0644]
clang/test/OpenMP/target_teams_generic_loop_uses_allocators_codegen.cpp [new file with mode: 0644]
clang/test/OpenMP/teams_generic_loop_codegen-1.cpp [new file with mode: 0644]
clang/test/OpenMP/teams_generic_loop_codegen.cpp [new file with mode: 0644]
clang/test/OpenMP/teams_generic_loop_collapse_codgen.cpp [new file with mode: 0644]
clang/test/OpenMP/teams_generic_loop_private_codegen.cpp [new file with mode: 0644]
clang/test/OpenMP/teams_generic_loop_reduction_codegen.cpp [new file with mode: 0644]