[all-commits] [llvm/llvm-project] e7e554: [flang] Lower omp.workshare to other omp construct...

Ivan R. Ivanov via All-commits all-commits at lists.llvm.org
Tue Nov 19 00:02:38 PST 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e7e5541616435b62da56e0a1fcc587c10b25321c
      https://github.com/llvm/llvm-project/commit/e7e5541616435b62da56e0a1fcc587c10b25321c
  Author: Ivan R. Ivanov <ivanov.i.aa at m.titech.ac.jp>
  Date:   2024-11-19 (Tue, 19 Nov 2024)

  Changed paths:
    M flang/include/flang/Optimizer/OpenMP/Passes.h
    M flang/include/flang/Optimizer/OpenMP/Passes.td
    M flang/include/flang/Optimizer/Passes/Pipelines.h
    M flang/include/flang/Tools/CrossToolHelpers.h
    M flang/lib/Frontend/FrontendActions.cpp
    M flang/lib/Optimizer/OpenMP/CMakeLists.txt
    A flang/lib/Optimizer/OpenMP/LowerWorkshare.cpp
    M flang/lib/Optimizer/Passes/Pipelines.cpp
    M flang/test/Fir/basic-program.fir
    A flang/test/Transforms/OpenMP/lower-workshare-alloca.mlir
    A flang/test/Transforms/OpenMP/lower-workshare-binding.mlir
    A flang/test/Transforms/OpenMP/lower-workshare-cleanup.mlir
    A flang/test/Transforms/OpenMP/lower-workshare-copyprivate.mlir
    A flang/test/Transforms/OpenMP/lower-workshare-correct-parallelize.mlir
    A flang/test/Transforms/OpenMP/lower-workshare-no-single.mlir
    A flang/test/Transforms/OpenMP/lower-workshare-nowait.mlir
    A flang/test/Transforms/OpenMP/lower-workshare-todo-cfg-dom.mlir
    A flang/test/Transforms/OpenMP/lower-workshare-todo-cfg.mlir
    M flang/tools/bbc/bbc.cpp
    M flang/tools/tco/tco.cpp

  Log Message:
  -----------
  [flang] Lower omp.workshare to other omp constructs (#101446)

Add a new pass that lowers an `omp.workshare` with its binding `omp.workshare.loop_wrapper` loop nests into other OpenMP constructs that can be lowered to LLVM.

More specifically, in order to preserve the sequential execution semantics of the code contained, it wraps portions that needs to be executed on a single thread in `omp.single` blocks, converts code that must be parallelized into `omp.wsloop` nests and inserts the appropriate synchronization.



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