[all-commits] [llvm/llvm-project] d45de8: [MLIR][GPU-LLVM] Convert `gpu.func` to `llvm.func`...

Victor Perez via All-commits all-commits at lists.llvm.org
Fri Aug 9 07:09:33 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: d45de8003a269066c9a9af871119a7c36eeb5aa3
      https://github.com/llvm/llvm-project/commit/d45de8003a269066c9a9af871119a7c36eeb5aa3
  Author: Victor Perez <victor.perez at codeplay.com>
  Date:   2024-08-09 (Fri, 09 Aug 2024)

  Changed paths:
    A mlir/include/mlir/Conversion/SPIRVCommon/AttrToLLVMConverter.h
    M mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td
    M mlir/include/mlir/Dialect/LLVMIR/LLVMDialect.td
    M mlir/lib/Conversion/CMakeLists.txt
    M mlir/lib/Conversion/GPUCommon/GPUOpsLowering.cpp
    M mlir/lib/Conversion/GPUCommon/GPUOpsLowering.h
    M mlir/lib/Conversion/GPUToLLVMSPV/CMakeLists.txt
    M mlir/lib/Conversion/GPUToLLVMSPV/GPUToLLVMSPV.cpp
    M mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp
    M mlir/lib/Conversion/GPUToROCDL/LowerGpuOpsToROCDLOps.cpp
    A mlir/lib/Conversion/SPIRVCommon/AttrToLLVMConverter.cpp
    A mlir/lib/Conversion/SPIRVCommon/CMakeLists.txt
    M mlir/lib/Conversion/SPIRVToLLVM/CMakeLists.txt
    M mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
    M mlir/test/Conversion/GPUToLLVMSPV/gpu-to-llvm-spv.mlir
    M mlir/test/Dialect/LLVMIR/func.mlir

  Log Message:
  -----------
  [MLIR][GPU-LLVM] Convert `gpu.func` to `llvm.func` (#101664)

Add support in `-convert-gpu-to-llvm-spv` to convert `gpu.func` to
`llvm.func` operations.

- `spir_kernel`/`spir_func` calling conventions used for
kernels/functions.
- `workgroup` attributions encoded as additional `llvm.ptr<3>`
arguments.
- No attribute used to annotate kernels
- `reqd_work_group_size` attribute using to encode
`gpu.known_block_size`.
- `llvm.mlir.workgroup_attrib_size` used to encode workgroup attribution
sizes. This will be attached to the pointer argument workgroup
attributions lower to.

**Note**: A notable missing feature that will be addressed in a
follow-up PR is a `-use-bare-ptr-memref-call-conv` option to replace
MemRef arguments with bare pointers to the MemRef element types instead
of the current MemRef descriptor approach.

---------

Signed-off-by: Victor Perez <victor.perez at codeplay.com>



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