[Mlir-commits] [mlir] [mlir][spirv] Support function argument decorations for ptr in the PhysicalStorageBuffer (PR #76353)

Kohei Yamaguchi llvmlistbot at llvm.org
Fri Jan 5 01:05:46 PST 2024


================
@@ -369,6 +370,32 @@ LogicalResult spirv::Deserializer::processMemberName(ArrayRef<uint32_t> words) {
   return success();
 }
 
+void spirv::Deserializer::setArgAttrs(uint32_t argID) {
+  if (!decorations.contains(argID)) {
+    argAttrs.push_back(DictionaryAttr::get(context, {}));
+    return;
+  }
+
+  // Replace a decoration as UnitAttr with DecorationAttr for the physical
+  // buffer pointer in the function parameter.
+  // e.g. `aliased` -> `spirv.decoration = #spirv.decoration<Aliased>`.
+  for (NamedAttribute decAttr : decorations[argID]) {
+    for (auto decoration :
+         {spirv::Decoration::Aliased, spirv::Decoration::Restrict,
+          spirv::Decoration::AliasedPointer,
+          spirv::Decoration::RestrictPointer}) {
+      if (decAttr.getName() ==
+          getSymbolDecoration(stringifyDecoration(decoration))) {
----------------
sott0n wrote:

Does this mean that during deserialization, only these four decorations should be added to `argAttrs` ?

https://github.com/llvm/llvm-project/pull/76353


More information about the Mlir-commits mailing list