[all-commits] [llvm/llvm-project] 5fd188: [mlir][spirv] Refactor image operations (#128552)

Igor Wodiany via All-commits all-commits at lists.llvm.org
Tue Feb 25 07:49:55 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 5fd188833c4cc2f18aa53908fd6237f6a432d629
      https://github.com/llvm/llvm-project/commit/5fd188833c4cc2f18aa53908fd6237f6a432d629
  Author: Igor Wodiany <igor.wodiany at imgtec.com>
  Date:   2025-02-25 (Tue, 25 Feb 2025)

  Changed paths:
    M mlir/include/mlir/Dialect/SPIRV/IR/SPIRVImageOps.td
    M mlir/lib/Dialect/SPIRV/IR/CMakeLists.txt
    A mlir/lib/Dialect/SPIRV/IR/ImageOps.cpp
    M mlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
    M mlir/test/Dialect/SPIRV/IR/image-ops.mlir
    M mlir/test/Target/SPIRV/image-ops.mlir

  Log Message:
  -----------
  [mlir][spirv] Refactor image operations (#128552)

This patch makes multiple changes to images ops:

1) The assembly format is unified with the rest of the dialect to use
`%0 = spirv.op %1, %2, %3 : f32, f32, f32` rather than having each type
directly attached to each argument.
2) The verification is moved from `SPIRVOps.cpp` to a new file so the
ops can be easier maintained.
3) Majority of C++ verification is removed and moved into ODS.
Verification of `ImageQuerySizeOp` is left in C++ due to the complexity
of rules.
4) `spirv::bitEnumContainsAll` is replaced by
`spirv::bitEnumContainsAny` in `verifyImageOperands`. In this context
`...Any` seems to be the correct function, as we want to check whether
unsupported operand is being used - in opposite to checking if all
unsupported operands are being used.
5) Simplify target tests by removing entry points and adding `Linkage`
capability to the modules.

This change is made in preparation for adding more Image ops. Change to
the assembly format was previously mentioned in #124124.



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