[mlir][spirv] Support import/export Functions and GlobalVariables
authorMd Abdullah Shahneous Bari <Md.Abdullah.Shahneous.Bari@intel.com>
Thu, 25 May 2023 00:08:30 +0000 (17:08 -0700)
committerLei Zhang <antiagainst@google.com>
Thu, 25 May 2023 00:08:46 +0000 (17:08 -0700)
commit6d578669f30695d7d05db19bf980b4aac5af325c
tree04d607b5a2f5aad2a1d8347b10a21221a723f921
parent5f84641901398dd96d6097a57ad84670bdc7476f
[mlir][spirv] Support import/export Functions and GlobalVariables

"LinkageAttributes" decoration allow a SPIR-V module to import
external functions and global variables, or export functions or
global variables for other SPIR-V modules to link against and use.

Import/export capability is extremely important when using outside
libraries (e.g., intrinsic libraries).

Added decorations:
- LinkageAttributes

Reviewed By: antiagainst

Differential Revision: https://reviews.llvm.org/D148749
mlir/include/mlir/Dialect/SPIRV/IR/SPIRVAttributes.td
mlir/include/mlir/Dialect/SPIRV/IR/SPIRVStructureOps.td
mlir/lib/Dialect/SPIRV/IR/SPIRVOps.cpp
mlir/lib/Target/SPIRV/Deserialization/Deserializer.cpp
mlir/lib/Target/SPIRV/Serialization/SerializeOps.cpp
mlir/lib/Target/SPIRV/Serialization/Serializer.cpp
mlir/test/Dialect/SPIRV/IR/function-decorations.mlir [new file with mode: 0644]
mlir/test/Dialect/SPIRV/IR/structure-ops.mlir
mlir/test/Target/SPIRV/decorations.mlir
mlir/test/Target/SPIRV/function-decorations.mlir [new file with mode: 0644]
mlir/test/Target/SPIRV/global-variable.mlir