[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