[Mlir-commits] [mlir] [MLIR][LLVM] Remove typed pointers from the LLVM dialect (PR #71285)

Markus Böck llvmlistbot at llvm.org
Mon Nov 6 06:47:45 PST 2023


================
@@ -445,7 +414,7 @@ def LLVM_StoreOp : LLVM_MemAccessOpBase<"store",
   let assemblyFormat = [{
     (`volatile` $volatile_^)? $value `,` $addr
     (`atomic` (`syncscope` `(` $syncscope^ `)`)? $ordering^)?
-    attr-dict `:` custom<StoreType>(type($value), type($addr))
+    attr-dict `:` type($value) `,` qualified(type($addr))
----------------
zero9178 wrote:

This behaviour was introduced by https://github.com/llvm/llvm-project/commit/ee0908703d2917d7310b71c5078fef44e8270317. As far as I can tell it essentially always omits the dialect prefix if the attribute/type class being parsed is known. Since in this Op it is known to be a `LLVMPointerType` it'll elide the `!llvm.ptr` by default when printing. 
https://github.com/llvm/llvm-project/commit/63f0c00d38ee7879239975a6743d4e6c7847b725 then apparently introduced the `qualified` directive to be able to restore the behaviour to before where the dialect prefix is always printed.

Personally I think this is non-intuative and that the default should be printing the full type by default instead, but that is another discussion entirely. Using `qualified`  seems to be the intended way to fully qualify the type in the assembly format.

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


More information about the Mlir-commits mailing list