[all-commits] [llvm/llvm-project] a12836: [OpenMP][CodeGen] Improved codegen for combined lo...

David Pagan via All-commits all-commits at lists.llvm.org
Wed Apr 10 13:09:38 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: a12836647e08c4ad203b9834ac55892fa0b9f2d3
      https://github.com/llvm/llvm-project/commit/a12836647e08c4ad203b9834ac55892fa0b9f2d3
  Author: David Pagan <dave.pagan at amd.com>
  Date:   2024-04-10 (Wed, 10 Apr 2024)

  Changed paths:
    M clang/include/clang/AST/StmtOpenMP.h
    M clang/lib/AST/StmtOpenMP.cpp
    M clang/lib/CodeGen/CGOpenMPRuntime.cpp
    M clang/lib/CodeGen/CGOpenMPRuntimeGPU.cpp
    M clang/lib/CodeGen/CGStmtOpenMP.cpp
    M clang/lib/Sema/SemaOpenMP.cpp
    M clang/lib/Serialization/ASTReaderStmt.cpp
    M clang/lib/Serialization/ASTWriterStmt.cpp
    M clang/test/OpenMP/nvptx_target_teams_generic_loop_codegen.cpp
    M clang/test/OpenMP/nvptx_target_teams_generic_loop_generic_mode_codegen.cpp
    M clang/test/OpenMP/target_teams_generic_loop_codegen.cpp
    A clang/test/OpenMP/target_teams_generic_loop_codegen_as_distribute.cpp
    A clang/test/OpenMP/target_teams_generic_loop_codegen_as_parallel_for.cpp
    M clang/test/OpenMP/target_teams_generic_loop_if_codegen.cpp
    M clang/test/OpenMP/target_teams_generic_loop_private_codegen.cpp
    M clang/test/OpenMP/teams_generic_loop_codegen-1.cpp
    M clang/test/OpenMP/teams_generic_loop_codegen.cpp
    M clang/test/OpenMP/teams_generic_loop_collapse_codegen.cpp
    M clang/test/OpenMP/teams_generic_loop_private_codegen.cpp
    M clang/test/OpenMP/teams_generic_loop_reduction_codegen.cpp

  Log Message:
  -----------
  [OpenMP][CodeGen] Improved codegen for combined loop directives (#87278)

IR for 'target teams loop' is now dependent on suitability of associated
loop-nest.

If a loop-nest:

- does not contain a function call, or
- the -fopenmp-assume-no-nested-parallelism has been specified,
- or the call is to an OpenMP API AND
- does not contain nested loop bind(parallel) directives

then it can be emitted as 'target teams distribute parallel for', which
is the current default. Otherwise, it is emitted as 'target teams
distribute'.

Added debug output indicating how 'target teams loop' was emitted. Flag
is -mllvm -debug-only=target-teams-loop-codegen

Added LIT tests explicitly verifying 'target teams loop' emitted as a
parallel loop and a distribute loop.

Updated other 'loop' related tests as needed to reflect change in IR.
- These updates account for most of the changed files and
additions/deletions.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list