[all-commits] [llvm/llvm-project] 85b46f: [flang] run CFG conversion on omp reduction declar...

Tom Eccles via All-commits all-commits at lists.llvm.org
Wed Mar 20 02:49:54 PDT 2024


  Branch: refs/heads/users/tblah/omp_array_reduction_3
  Home:   https://github.com/llvm/llvm-project
  Commit: 85b46f6f5ec1c87c0043930130536cc83ea07333
      https://github.com/llvm/llvm-project/commit/85b46f6f5ec1c87c0043930130536cc83ea07333
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-03-19 (Tue, 19 Mar 2024)

  Changed paths:
    M flang/include/flang/Optimizer/Transforms/Passes.h
    M flang/include/flang/Optimizer/Transforms/Passes.td
    M flang/include/flang/Tools/CLOptions.inc
    M flang/lib/Optimizer/Transforms/ControlFlowConverter.cpp
    M flang/test/Driver/bbc-mlir-pass-pipeline.f90
    M flang/test/Driver/mlir-debug-pass-pipeline.f90
    M flang/test/Driver/mlir-pass-pipeline.f90
    M flang/test/Fir/array-value-copy-2.fir
    M flang/test/Fir/basic-program.fir
    M flang/test/Fir/convert-to-llvm-openmp-and-fir.fir
    M flang/test/Fir/loop01.fir
    M flang/test/Fir/loop02.fir
    M flang/test/Lower/OpenMP/FIR/flush.f90
    M flang/test/Lower/OpenMP/FIR/master.f90
    M flang/test/Lower/OpenMP/FIR/parallel-sections.f90

  Log Message:
  -----------
  [flang] run CFG conversion on omp reduction declare ops

Most FIR passes only look for FIR operations inside of functions (either
because they run only on func.func or they run on the module but iterate
over functions internally). But there can also be FIR operations inside
of fir.global, some OpenMP and OpenACC container operations.

This has worked so far for fir.global and OpenMP reductions because they
only contained very simple FIR code which doesn't need most passes to be
lowered into LLVM IR. I am not sure how OpenACC works.

In the long run, I hope to see a more systematic approach to making sure
that every pass runs on all of these container operations. I will write
an RFC for this soon.

In the meantime, this pass duplicates the CFG conversion pass to also
run on omp reduction operations. This is similar to how the
AbstractResult pass is already duplicated for fir.global operations.

Co-authored-by: Mats Petersson <mats.petersson at arm.com>


  Commit: cdad77c9af6b277c3c2daa7876e60d52c7acf8fb
      https://github.com/llvm/llvm-project/commit/cdad77c9af6b277c3c2daa7876e60d52c7acf8fb
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-03-19 (Tue, 19 Mar 2024)

  Changed paths:
    M flang/include/flang/Optimizer/Transforms/Passes.h
    M flang/lib/Optimizer/Transforms/ControlFlowConverter.cpp

  Log Message:
  -----------
  Expose cfg conversions to other passes


  Commit: 888ed3805caf8899112e34e7c3ec283644b71ff6
      https://github.com/llvm/llvm-project/commit/888ed3805caf8899112e34e7c3ec283644b71ff6
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-03-20 (Wed, 20 Mar 2024)

  Changed paths:
    A flang/test/Transforms/omp-reduction-cfg-conversion.fir

  Log Message:
  -----------
  Add test


  Commit: 8dea29a80044d44ca2ef7472fe7760995c3bf869
      https://github.com/llvm/llvm-project/commit/8dea29a80044d44ca2ef7472fe7760995c3bf869
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-03-20 (Wed, 20 Mar 2024)

  Changed paths:
    M flang/lib/Optimizer/CodeGen/PreCGRewrite.cpp

  Log Message:
  -----------
  [flang][CodeGen] Run PreCGRewrite on omp reduction declare ops

OpenMP reduction declare operations can contain FIR code which needs to
be lowered to LLVM. With array reductions, these regions can contain
more complicated operations which need PreCGRewriting. A similar extra
case was already needed for fir::GlobalOp.


  Commit: 13cd25877a5b2c8b387f2411b50aa7f36357fda5
      https://github.com/llvm/llvm-project/commit/13cd25877a5b2c8b387f2411b50aa7f36357fda5
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-03-20 (Wed, 20 Mar 2024)

  Changed paths:
    M flang/lib/Optimizer/CodeGen/PreCGRewrite.cpp

  Log Message:
  -----------
  Fix include


  Commit: 8a432d5028ff2f368398fba519dcc8c12b851e49
      https://github.com/llvm/llvm-project/commit/8a432d5028ff2f368398fba519dcc8c12b851e49
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-03-20 (Wed, 20 Mar 2024)

  Changed paths:
    M flang/lib/Optimizer/CodeGen/PreCGRewrite.cpp

  Log Message:
  -----------
  Run PreCGRewrite on all regions in the module


  Commit: 717f22f2c5c602c50a1a0b21479ec837a2accbbd
      https://github.com/llvm/llvm-project/commit/717f22f2c5c602c50a1a0b21479ec837a2accbbd
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-03-20 (Wed, 20 Mar 2024)

  Changed paths:
    M flang/lib/Optimizer/CodeGen/PreCGRewrite.cpp

  Log Message:
  -----------
  Remove unessecary include


  Commit: 83ad738ffd37464328520b4a94ce0f01ce10351a
      https://github.com/llvm/llvm-project/commit/83ad738ffd37464328520b4a94ce0f01ce10351a
  Author: Tom Eccles <tom.eccles at arm.com>
  Date:   2024-03-20 (Wed, 20 Mar 2024)

  Changed paths:
    M flang/lib/Optimizer/CodeGen/PreCGRewrite.cpp

  Log Message:
  -----------
  Remove runOn


Compare: https://github.com/llvm/llvm-project/compare/790025615d31...83ad738ffd37

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