Skip to content

Commit d102e90

Browse files
[mlir][MLProgram][NFC] Migrate to OpAsmAttrInterface for ASM alias generation (#130481)
After the introduction of `OpAsmAttrInterface`, it is favorable to migrate code using `OpAsmDialectInterface` for ASM alias generation, which lives in `Dialect.cpp`, to use `OpAsmAttrInterface`, which lives in `Attrs.td`. In this way, attribute behavior is placed near its tablegen definition and people won't need to go through other files to know what other (unexpected) hooks comes into play. See #124721 for the interface itself and #128191 and #130479 for prior migrations. Note that `MLProgramOpAsmInterface` has no content now. However, if we delete it, a failure related to dialect resource handling will occur ``` within split at llvm-project/mlir/test/IR/invalid-file-metadata.mlir:60 offset :7:7: error: unexpected error: unexpected 'resource' section for dialect 'ml_program' ``` To support resource such interface must be registered.
1 parent d9ac4d6 commit d102e90

File tree

2 files changed

+3
-8
lines changed

2 files changed

+3
-8
lines changed

mlir/include/mlir/Dialect/MLProgram/IR/MLProgramAttributes.td

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ def MLProgram_ExternAttr : MLProgram_Attr<"Extern", [TypedAttrInterface]> {
4040
let parameters = (ins AttributeSelfTypeParameter<"">:$type);
4141
let mnemonic = "extern";
4242
let assemblyFormat = "";
43+
44+
// Generate mnemonic alias for the attribute.
45+
let genMnemonicAlias = 1;
4346
}
4447

4548
#endif // MLPROGRAM_ATTRIBUTES

mlir/lib/Dialect/MLProgram/IR/MLProgramDialect.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,6 @@ struct MLProgramInlinerInterface : public DialectInlinerInterface {
3939

4040
struct MLProgramOpAsmDialectInterface : public OpAsmDialectInterface {
4141
using OpAsmDialectInterface::OpAsmDialectInterface;
42-
43-
AliasResult getAlias(Attribute attr, raw_ostream &os) const override {
44-
if (llvm::isa<ExternAttr>(attr)) {
45-
os << "extern";
46-
return AliasResult::OverridableAlias;
47-
}
48-
return AliasResult::NoAlias;
49-
}
5042
};
5143
} // namespace
5244

0 commit comments

Comments
 (0)