[PATCH] D75872: [mlir][spirv] Use spv.vce in spv.module and wire up (de)serialization

Lei Zhang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 9 14:04:48 PDT 2020


antiagainst created this revision.
antiagainst added a reviewer: denis13.
Herald added subscribers: llvm-commits, bader, Joonsoo, liufengdb, aartbik, lucyrfox, mgester, arpith-jacob, csigg, nicolasvasilache, shauheen, burmako, jpienaar, rriddle, mehdi_amini.
Herald added a reviewer: mravishankar.
Herald added a reviewer: herhut.
Herald added a project: LLVM.

This commits changes the definition of spv.module to use the #spv.vce
attribute for specifying (version, capabilities, extensions) triple
so that we can have better API and custom assembly form. Since now
we have proper modelling of the triple, (de)serialization is wired up
to use them.

With the new UpdateVCEPass, we don't need to manually specify the
required extensions and capabilities anymore when creating a spv.module.
One just need to call UpdateVCEPass before serialization to get the
needed version/extensions/capabilities.

Depends On D75871 <https://reviews.llvm.org/D75871>


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D75872

Files:
  mlir/include/mlir/Dialect/SPIRV/SPIRVBase.td
  mlir/include/mlir/Dialect/SPIRV/SPIRVBinaryUtils.h
  mlir/include/mlir/Dialect/SPIRV/SPIRVOps.h
  mlir/include/mlir/Dialect/SPIRV/SPIRVStructureOps.td
  mlir/lib/Conversion/GPUToSPIRV/ConvertGPUToSPIRV.cpp
  mlir/lib/Dialect/SPIRV/SPIRVOps.cpp
  mlir/lib/Dialect/SPIRV/Serialization/Deserializer.cpp
  mlir/lib/Dialect/SPIRV/Serialization/SPIRVBinaryUtils.cpp
  mlir/lib/Dialect/SPIRV/Serialization/Serializer.cpp
  mlir/lib/Dialect/SPIRV/Transforms/UpdateVCEPass.cpp
  mlir/test/Conversion/GPUToSPIRV/builtins.mlir
  mlir/test/Conversion/GPUToSPIRV/load-store.mlir
  mlir/test/Conversion/GPUToSPIRV/simple.mlir
  mlir/test/Conversion/GPUToVulkan/invoke-vulkan.mlir
  mlir/test/Dialect/SPIRV/Serialization/arithmetic-ops.mlir
  mlir/test/Dialect/SPIRV/Serialization/array.mlir
  mlir/test/Dialect/SPIRV/Serialization/atomic-ops.mlir
  mlir/test/Dialect/SPIRV/Serialization/barrier.mlir
  mlir/test/Dialect/SPIRV/Serialization/bit-ops.mlir
  mlir/test/Dialect/SPIRV/Serialization/cast-ops.mlir
  mlir/test/Dialect/SPIRV/Serialization/composite-op.mlir
  mlir/test/Dialect/SPIRV/Serialization/constant.mlir
  mlir/test/Dialect/SPIRV/Serialization/entry-point.mlir
  mlir/test/Dialect/SPIRV/Serialization/execution-mode.mlir
  mlir/test/Dialect/SPIRV/Serialization/function-call.mlir
  mlir/test/Dialect/SPIRV/Serialization/global-variable.mlir
  mlir/test/Dialect/SPIRV/Serialization/glsl-ops.mlir
  mlir/test/Dialect/SPIRV/Serialization/group-ops.mlir
  mlir/test/Dialect/SPIRV/Serialization/logical-ops.mlir
  mlir/test/Dialect/SPIRV/Serialization/loop.mlir
  mlir/test/Dialect/SPIRV/Serialization/memory-ops.mlir
  mlir/test/Dialect/SPIRV/Serialization/module.mlir
  mlir/test/Dialect/SPIRV/Serialization/non-uniform-ops.mlir
  mlir/test/Dialect/SPIRV/Serialization/phi.mlir
  mlir/test/Dialect/SPIRV/Serialization/selection.mlir
  mlir/test/Dialect/SPIRV/Serialization/spec-constant.mlir
  mlir/test/Dialect/SPIRV/Serialization/struct.mlir
  mlir/test/Dialect/SPIRV/Serialization/terminator.mlir
  mlir/test/Dialect/SPIRV/Serialization/undef.mlir
  mlir/test/Dialect/SPIRV/Transforms/abi-load-store.mlir
  mlir/test/Dialect/SPIRV/Transforms/abi-simple.mlir
  mlir/test/Dialect/SPIRV/Transforms/inlining.mlir
  mlir/test/Dialect/SPIRV/Transforms/layout-decoration.mlir
  mlir/test/Dialect/SPIRV/Transforms/vce-deduction.mlir
  mlir/test/Dialect/SPIRV/availability.mlir
  mlir/test/Dialect/SPIRV/control-flow-ops.mlir
  mlir/test/Dialect/SPIRV/ops.mlir
  mlir/test/Dialect/SPIRV/structure-ops.mlir
  mlir/test/Dialect/SPIRV/target-env.mlir
  mlir/tools/mlir-vulkan-runner/mlir-vulkan-runner.cpp
  mlir/unittests/Dialect/SPIRV/DeserializationTest.cpp
  mlir/unittests/Dialect/SPIRV/SerializationTest.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D75872.249214.patch
Type: text/x-patch
Size: 96072 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200309/116bbaa6/attachment.bin>


More information about the llvm-commits mailing list