[all-commits] [llvm/llvm-project] 02022f: [mlir][spirv] Enhance AccessChainOp index type han...

HazemAbdelhafez via All-commits all-commits at lists.llvm.org
Mon Jun 22 07:12:00 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 02022ff2e3f2f4d39d5926e93ecfa77395a1e9ea
      https://github.com/llvm/llvm-project/commit/02022ff2e3f2f4d39d5926e93ecfa77395a1e9ea
  Author: HazemAbdelhafez <23439402+HazemAbdelhafez at users.noreply.github.com>
  Date:   2020-06-22 (Mon, 22 Jun 2020)

  Changed paths:
    M mlir/lib/Dialect/SPIRV/SPIRVOps.cpp
    M mlir/test/Conversion/GPUToVulkan/lower-gpu-launch-vulkan-launch.mlir
    M mlir/test/Dialect/SPIRV/Serialization/array.mlir
    M mlir/test/Dialect/SPIRV/Serialization/cooperative-matrix.mlir
    M mlir/test/Dialect/SPIRV/Serialization/debug.mlir
    M mlir/test/Dialect/SPIRV/Serialization/global-variable.mlir
    M mlir/test/Dialect/SPIRV/Serialization/loop.mlir
    M mlir/test/Dialect/SPIRV/Serialization/matrix.mlir
    M mlir/test/Dialect/SPIRV/Serialization/memory-ops.mlir
    M mlir/test/Dialect/SPIRV/Serialization/undef.mlir
    M mlir/test/Dialect/SPIRV/Transforms/abi-load-store.mlir
    M mlir/test/Dialect/SPIRV/Transforms/inlining.mlir
    M mlir/test/Dialect/SPIRV/Transforms/layout-decoration.mlir
    M mlir/test/Dialect/SPIRV/canonicalize.mlir
    M mlir/test/Dialect/SPIRV/cooperative-matrix.mlir
    M mlir/test/Dialect/SPIRV/ops.mlir
    M mlir/test/Dialect/SPIRV/structure-ops.mlir

  Log Message:
  -----------
  [mlir][spirv] Enhance AccessChainOp index type handling

This patch extends the AccessChainOp index type handling to be able to deal with
all Integer type indices (i.e., all bit-widths and signedness symantics).

There were two ways of achieving this:
1- Backward compatible: The new way of handling the indices will assume that
   an index type is i32 by default if not specified in the assembly format,
   this way all the old tests would pass correctly.
2- Enforce the format: This unifies the spv.AccessChain Op format and all the old
   tests had to be updated to reflect this change or else they fail.

I picked option-2 to unify the Op format and avoid having optional index-type fields
that can lead to somewhat confusing tests format and multiple representations for
the same Op with undocumented assumption that an index is i32 unless stated.
Nonetheless, reverting to option-1 should be straightforward if preferred or needed.

Differential Revision: https://reviews.llvm.org/D81763




More information about the All-commits mailing list