[all-commits] [llvm/llvm-project] be99c6: [OPENMP50]Codegen for iterator construct.
Alexey Bataev via All-commits
all-commits at lists.llvm.org
Tue Apr 7 12:35:33 PDT 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: be99c6158841d0c01eaa8ba16cd7b9e5ade40c6b
https://github.com/llvm/llvm-project/commit/be99c6158841d0c01eaa8ba16cd7b9e5ade40c6b
Author: Alexey Bataev <a.bataev at hotmail.com>
Date: 2020-04-07 (Tue, 07 Apr 2020)
Changed paths:
M clang/include/clang/AST/ExprOpenMP.h
M clang/lib/AST/Expr.cpp
M clang/lib/CodeGen/CGOpenMPRuntime.cpp
M clang/lib/CodeGen/CGOpenMPRuntime.h
M clang/lib/CodeGen/CGStmtOpenMP.cpp
M clang/lib/Sema/SemaExpr.cpp
M clang/lib/Serialization/ASTReaderStmt.cpp
M clang/lib/Serialization/ASTWriterStmt.cpp
M clang/test/OpenMP/depobj_ast_print.cpp
M clang/test/OpenMP/depobj_codegen.cpp
M clang/test/OpenMP/target_depend_codegen.cpp
M clang/test/OpenMP/target_enter_data_depend_codegen.cpp
M clang/test/OpenMP/target_exit_data_depend_codegen.cpp
M clang/test/OpenMP/target_parallel_depend_codegen.cpp
M clang/test/OpenMP/target_parallel_for_depend_codegen.cpp
M clang/test/OpenMP/target_parallel_for_simd_depend_codegen.cpp
M clang/test/OpenMP/target_simd_depend_codegen.cpp
M clang/test/OpenMP/target_teams_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_parallel_for_simd_depend_codegen.cpp
M clang/test/OpenMP/target_teams_distribute_simd_depend_codegen.cpp
M clang/test/OpenMP/target_update_depend_codegen.cpp
M clang/test/OpenMP/task_codegen.c
M clang/test/OpenMP/task_codegen.cpp
Log Message:
-----------
[OPENMP50]Codegen for iterator construct.
Implemented codegen for the iterator expression in the depend clauses.
Iterator construct is emitted the following way:
iterator(cnt1, cnt2, ...), in : <dep>
<TotalNumDeps> = <cnt1_size> * <cnt2_size> * ...;
kmp_depend_t deps[<TotalNumDeps>];
deps_counter = 0;
for (cnt1) {
for (cnt2) {
...
deps[deps_counter].base_addr = &<dep>;
deps[deps_counter].size = sizeof(<dep>);
deps[deps_counter].flags = in;
deps_counter += 1;
...
}
}
For depobj construct the codegen is very similar, but the memory is
allocated dynamically and added extra first item reserved for internal use.
More information about the All-commits
mailing list