================
@@ -188,4 +188,46 @@ def GpuROCDLAttachTarget: Pass<"rocdl-attach-target", ""> {
];
}
+def GpuSPIRVAttachTarget: Pass<"spirv-attach-target", ""> {
+ let summary = "Attaches an SPIRV target attribute to a GPU Module.";
+ let description = [{
+ This pass searches for all GPU Modules in the immediate regions and
attaches
+ an SPIRV target if the module matches the name specified by the `module`
argument.
+
+ Example:
+ ```
+ // File: in1.mlir:
+ gpu.module @nvvm_module_1 {...}
+ gpu.module @spirv_module_1 {...}
+ // mlir-opt --spirv-attach-target="module=spirv.* ver=v1.0 caps=Kernel"
in1.mlir
+ gpu.module @nvvm_module_1 {...}
+ gpu.module @spirv_module_1 [#spirv.target<vce = #spirv.vce<v1.0, [Kernel],
[]>, resource_limits = <>>] {...}
+ ```
+ }];
+ let options = [
+ Option<"moduleMatcher", "module", "std::string",
+ /*default=*/ [{""}],
+ "Regex used to identify the modules to attach the target to.">,
+ Option<"spirvVersion", "ver", "std::string",
+ /*default=*/ "\"v1.0\"",
+ "SPIRV Addressing Model.">,
+ ListOption<"spirvCapabilities", "caps", "std::string",
+ "List of required SPIRV Capabilities">,
----------------
antiagainst wrote:
s/required/supported/
https://github.com/llvm/llvm-project/pull/69949
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits