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

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


  Branch: refs/heads/users/ivanradanov/flang-workshare
  Home:   https://github.com/llvm/llvm-project
  Commit: e2ac3619c68851a67668ade6769451cff90df69b
      https://github.com/llvm/llvm-project/commit/e2ac3619c68851a67668ade6769451cff90df69b
  Author: Ivan Radanov 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

Change to workshare loop wrapper op

Move single op declaration

Schedule pass properly

Correctly handle nested nested loop nests to be parallelized by workshare

Leave comments for shouldUseWorkshareLowering

Use copyprivate to scatter val from omp.single

TODO still need to implement copy function
TODO transitive check for usage outside of omp.single not imiplemented yet

Transitively check for users outisde of single op

TODO need to implement copy func
TODO need to hoist allocas outside of single regions

Add tests

Hoist allocas

More tests

Emit body for copy func

Test the tmp storing logic

Clean up trivially dead ops

Only handle single-block regions for now

Fix tests for custom assembly for loop wrapper

Only run the lower workshare pass if openmp is enabled

Implement some missing functionality

Fix tests

Fix test

Iterate backwards to find all trivially dead ops

Add expalanation comment for createCopyFun

Update test

Emit a proper error message for CFG in workshare

Cleanup tests

Fix todo tests

Fix dst src in copy function

Use omp.single to handle CFG cases

Fix lower workshare tests

Different warning

Fix bug and add better clarification comments

Fix message

Fix tests

Do not emit empty omp.single's

LowerWorkshare tests

pipelines fix



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