mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-24 16:26:06 +00:00

See https://discourse.llvm.org/t/rfc-introduce-opasm-type-attr-interface-for-pretty-print-in-asmprinter/83792 for detailed introduction. This PR acts as the first part of it * Add `OpAsmTypeInterface` and `getAsmName` API for deducing ASM name from type * Add default impl in `OpAsmOpInterface` to respect this API when available. The `OpAsmAttrInterface` / hooking into Alias system part should be another PR, using a `getAlias` API. ### Discussion * Instead of using `StringRef getAsmName()` as the API, I use `void getAsmName(OpAsmSetNameFn)`, as returning StringRef might be unsafe (std::string constructed inside then returned a _ref_; and this aligns with the design of `getAsmResultNames`. * On the result packing of an op, the current approach is that when not all of the result types are `OpAsmTypeInterface`, then do nothing (old default impl) ### Review Cc @j2kun and @Alexanderviand-intel for downstream; Cc @River707 and @joker-eph for relevent commit history; Cc @ftynse for discourse.