[all-commits] [llvm/llvm-project] fbaf2c: [OpenMP][Flang] Add "IsolatedFromAbove" trait to o...

Akash Banerjee via All-commits all-commits at lists.llvm.org
Mon Nov 6 05:24:30 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: fbaf2c6cf7b207145dbda0d1cbadd0b446a21199
      https://github.com/llvm/llvm-project/commit/fbaf2c6cf7b207145dbda0d1cbadd0b446a21199
  Author: Akash Banerjee <Akash.Banerjee at amd.com>
  Date:   2023-11-06 (Mon, 06 Nov 2023)

  Changed paths:
    M flang/lib/Lower/OpenMP.cpp
    A flang/test/Driver/OpenMP/map-types-and-sizes.f90
    M flang/test/Fir/convert-to-llvm-openmp-and-fir.fir
    M flang/test/Lower/OpenMP/FIR/array-bounds.f90
    M flang/test/Lower/OpenMP/FIR/location.f90
    M flang/test/Lower/OpenMP/FIR/target.f90
    M flang/test/Lower/OpenMP/array-bounds.f90
    M flang/test/Lower/OpenMP/location.f90
    M flang/test/Lower/OpenMP/target.f90
    M mlir/include/mlir/Dialect/OpenMP/OpenMPOps.td
    M mlir/lib/Dialect/OpenMP/IR/OpenMPDialect.cpp

  Log Message:
  -----------
  [OpenMP][Flang] Add "IsolatedFromAbove" trait to omp.target

This patch adds the PFT lowering changes required for adding the IsolatedFromAbove trait to omp.target.

Key Changes:
	- Add IsolatedFromAbove trait to target op in MLIR.
	- Main reason for this change is to prevent CSE and other similar optimisations from crossing region boundaries for target operations. The link below has the discourse discussion surrounding this issue.
	- Move implicit operand capturing to the PFT lowering stage.
	- Implicit operands are first added as implicitly captured map_operands with their map_types set accordingly to indicate this. Later, all map_operands including implicit ones are added as block arguments.
	- Remove `implicit` attribute from the `MapInfoOp`. This information is already captured by the `map_type`.
	- The custom printer and parser for the map_types have been updated to show the `implicit` and `literal` map_types.
	- Update related tests.
	- This fixes #63555.
	- This fixes #70488.


  Commit: 72e2387c0528be72999beabf532e6929d3054e03
      https://github.com/llvm/llvm-project/commit/72e2387c0528be72999beabf532e6929d3054e03
  Author: Akash Banerjee <Akash.Banerjee at amd.com>
  Date:   2023-11-06 (Mon, 06 Nov 2023)

  Changed paths:
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
    M mlir/test/Conversion/OpenMPToLLVM/convert-to-llvmir.mlir
    M mlir/test/Dialect/OpenMP/canonicalize.mlir
    M mlir/test/Dialect/OpenMP/invalid.mlir
    M mlir/test/Dialect/OpenMP/ops.mlir
    M mlir/test/Target/LLVMIR/omptarget-array-sectioning-host.mlir
    M mlir/test/Target/LLVMIR/omptarget-byref-bycopy-generation-device.mlir
    M mlir/test/Target/LLVMIR/omptarget-byref-bycopy-generation-host.mlir
    M mlir/test/Target/LLVMIR/omptarget-declare-target-llvm-device.mlir
    M mlir/test/Target/LLVMIR/omptarget-region-device-llvm.mlir
    M mlir/test/Target/LLVMIR/omptarget-region-llvm-target-device.mlir
    M mlir/test/Target/LLVMIR/omptarget-region-llvm.mlir
    M mlir/test/Target/LLVMIR/omptarget-region-parallel-llvm.mlir

  Log Message:
  -----------
  [OpenMP][MLIR] Add "IsolatedFromAbove" trait to omp.target

This patch adds the MLIR translation changes required for add the IsolatedFromAbove and OutlineableOpenMPOpInterface traits to omp.target. It links the newly added block arguments to their corresponding llvm values.

Depends on #67164.


  Commit: 63752399f8323460f685c8431aae7269ea3f27a2
      https://github.com/llvm/llvm-project/commit/63752399f8323460f685c8431aae7269ea3f27a2
  Author: Akash Banerjee <Akash.Banerjee at amd.com>
  Date:   2023-11-06 (Mon, 06 Nov 2023)

  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/CMakeLists.txt
    R flang/lib/Optimizer/Transforms/OMPEarlyOutlining.cpp
    R flang/test/Lower/OpenMP/FIR/omp-target-early-outlining.f90
    M flang/test/Lower/OpenMP/function-filtering-2.f90
    M flang/test/Lower/OpenMP/function-filtering.f90
    M mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp

  Log Message:
  -----------
  [OpenMP][MLIR]OMPEarlyOutliningPass removal

This patch removes the OMPEarlyOutliningPass as it is no longer required. The implicit map operand capture has now been moved to the PFT lowering stage.

Depends on #67318.


  Commit: be59fe5028b99c36c4bc9ccf6304216e50b337a8
      https://github.com/llvm/llvm-project/commit/be59fe5028b99c36c4bc9ccf6304216e50b337a8
  Author: Akash Banerjee <Akash.Banerjee at amd.com>
  Date:   2023-11-06 (Mon, 06 Nov 2023)

  Changed paths:
    M openmp/libomptarget/test/offloading/fortran/basic-target-region-3D-array.f90
    R openmp/libomptarget/test/offloading/fortran/failing/target_map_common_block2.f90
    A openmp/libomptarget/test/offloading/fortran/target_map_common_block2.f90

  Log Message:
  -----------
  [OpenMP][Flang]Fix some of the Fortan OpenMP Offloading tests

target_map_common_block2.f90
	- Fix the extra space in the print message.
	- #67164 fixes this. So moving it outside of failing and also removing XFAIL marker.

basic-target-region-3D-array.f90
	- Corrected the check to account for the new lines printed.

Depends on #67319


Compare: https://github.com/llvm/llvm-project/compare/0a22a80c1b83...be59fe5028b9


More information about the All-commits mailing list