[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 18:39:29 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:
Ok, I understand and updated this function.
> we should error out if there are more we didn't recognize to avoid silently ignore decorations.
Should we add this invalid test case?
https://github.com/llvm/llvm-project/pull/76353
More information about the Mlir-commits
mailing list