[all-commits] [llvm/llvm-project] 3f03f5: [MLIR][TableGen] Add genMnemonicAlias field for Op...
Hongren Zheng via All-commits
all-commits at lists.llvm.org
Sat May 10 07:37:16 PDT 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 3f03f530c7411de8049c40a125b63b2defcdb8c2
https://github.com/llvm/llvm-project/commit/3f03f530c7411de8049c40a125b63b2defcdb8c2
Author: Hongren Zheng <i at zenithal.me>
Date: 2025-05-10 (Sat, 10 May 2025)
Changed paths:
M mlir/docs/DefiningDialects/AttributesAndTypes.md
M mlir/include/mlir/IR/AttrTypeBase.td
M mlir/include/mlir/TableGen/AttrOrTypeDef.h
M mlir/lib/TableGen/AttrOrTypeDef.cpp
M mlir/test/IR/op-asm-interface.mlir
M mlir/test/lib/Dialect/Test/TestAttrDefs.td
M mlir/test/lib/Dialect/Test/TestTypeDefs.td
M mlir/test/mlir-tblgen/attrdefs.td
M mlir/tools/mlir-tblgen/AttrOrTypeDefGen.cpp
Log Message:
-----------
[MLIR][TableGen] Add genMnemonicAlias field for OpAsm{Type,Attr}Interface (#131504)
Since the introduction of `OpAsm{Type,Attr}Interface` (#121187), it is
possible to generate alias in AsmPrinter solely from the type/attribute
itself without consulting the `OpAsmDialectInterface`. This means the
behavior can be put in tablegen file near the type/attribute definition.
A common pattern is to just use the type/attr mnemonic as the alias.
Previously, like #130479/#130481/#130483, this means adding a default
implementation to `extraClassDeclaration` in `LLVM_Attr` base class.
However, as attribute definition may override `extraClassDeclaration`,
it might be preferred to have a new field in tablegen to specify this
behavior.
This commit adds a `genMnemonicAlias` field to `AttrOrTypeDef`, when
enabled, makes `mlir-tblgen` emit a default implementation of `getAlias`
using mnemonic. When `OpAsm{Attr,Type}Interface` is not specified by the
user, `tblgen` will automatically add the interface.
For users wanting other alias behavior, they can ignore such field and
still use `extraClassDeclaration` way.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list