Based on the following discussion: https://llvm.discourse.group/t/rfc-memref-memory-shape-as-attribute/2229 The goal of the change is to make memory space property to have more expressive representation, rather then "magic" integer values. It will allow to have more clean ASM form: ``` gpu.func @test(%arg0: memref<100xf32, "workgroup">) // instead of gpu.func @test(%arg0: memref<100xf32, 3>) ``` Explanation for `Attribute` choice instead of plain `string`: * `Attribute` classes allow to use more type safe API based on RTTI. * `Attribute` classes provides faster comparison operator based on pointer comparison in contrast to generic string comparison. * `Attribute` allows to store more complex things, like structs or dictionaries. It will allows to have more complex memory space hierarchy. This commit preserve old integer-based API and implements it on top of the new one. Depends on D97476 Reviewed By: rriddle, mehdi_amini Differential Revision: https://reviews.llvm.org/D96145
MLIR documentation ================== Please note mlir.llvm.org is where MLIR's rendered documentation is displayed. The viewing experience on GitHub or elsewhere may not match those of the website. For any changes please verify instead that they work on the main website first. See https://github.com/llvm/mlir-www for the website generation information.