Skip to content

Commit ffd35fa

Browse files
[mlir][LLVMIR][NFC] Migrate to OpAsmAttrInterface for ASM alias generation
1 parent 9e32afe commit ffd35fa

File tree

2 files changed

+105
-33
lines changed

2 files changed

+105
-33
lines changed

mlir/include/mlir/Dialect/LLVMIR/LLVMAttrDefs.td

+105
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,9 @@ def LoopVectorizeAttr : LLVM_Attr<"LoopVectorize", "loop_vectorize"> {
7979
);
8080

8181
let assemblyFormat = "`<` struct(params) `>`";
82+
83+
// Generate mnemonic alias for the attribute.
84+
let genMnemonicAlias = 1;
8285
}
8386

8487
def LoopInterleaveAttr : LLVM_Attr<"LoopInterleave", "loop_interleave"> {
@@ -92,6 +95,9 @@ def LoopInterleaveAttr : LLVM_Attr<"LoopInterleave", "loop_interleave"> {
9295
);
9396

9497
let assemblyFormat = "`<` struct(params) `>`";
98+
99+
// Generate mnemonic alias for the attribute.
100+
let genMnemonicAlias = 1;
95101
}
96102

97103
def LoopUnrollAttr : LLVM_Attr<"LoopUnroll", "loop_unroll"> {
@@ -111,6 +117,9 @@ def LoopUnrollAttr : LLVM_Attr<"LoopUnroll", "loop_unroll"> {
111117
);
112118

113119
let assemblyFormat = "`<` struct(params) `>`";
120+
121+
// Generate mnemonic alias for the attribute.
122+
let genMnemonicAlias = 1;
114123
}
115124

116125
def LoopUnrollAndJamAttr : LLVM_Attr<"LoopUnrollAndJam", "loop_unroll_and_jam"> {
@@ -130,6 +139,9 @@ def LoopUnrollAndJamAttr : LLVM_Attr<"LoopUnrollAndJam", "loop_unroll_and_jam">
130139
);
131140

132141
let assemblyFormat = "`<` struct(params) `>`";
142+
143+
// Generate mnemonic alias for the attribute.
144+
let genMnemonicAlias = 1;
133145
}
134146

135147
def LoopLICMAttr : LLVM_Attr<"LoopLICM", "loop_licm"> {
@@ -145,6 +157,9 @@ def LoopLICMAttr : LLVM_Attr<"LoopLICM", "loop_licm"> {
145157
);
146158

147159
let assemblyFormat = "`<` struct(params) `>`";
160+
161+
// Generate mnemonic alias for the attribute.
162+
let genMnemonicAlias = 1;
148163
}
149164

150165
def LoopDistributeAttr : LLVM_Attr<"LoopDistribute", "loop_distribute"> {
@@ -162,6 +177,9 @@ def LoopDistributeAttr : LLVM_Attr<"LoopDistribute", "loop_distribute"> {
162177
);
163178

164179
let assemblyFormat = "`<` struct(params) `>`";
180+
181+
// Generate mnemonic alias for the attribute.
182+
let genMnemonicAlias = 1;
165183
}
166184

167185
def LoopPipelineAttr : LLVM_Attr<"LoopPipeline", "loop_pipeline"> {
@@ -176,6 +194,9 @@ def LoopPipelineAttr : LLVM_Attr<"LoopPipeline", "loop_pipeline"> {
176194
);
177195

178196
let assemblyFormat = "`<` struct(params) `>`";
197+
198+
// Generate mnemonic alias for the attribute.
199+
let genMnemonicAlias = 1;
179200
}
180201

181202
def LoopPeeledAttr : LLVM_Attr<"LoopPeeled", "loop_peeled"> {
@@ -189,6 +210,9 @@ def LoopPeeledAttr : LLVM_Attr<"LoopPeeled", "loop_peeled"> {
189210
);
190211

191212
let assemblyFormat = "`<` struct(params) `>`";
213+
214+
// Generate mnemonic alias for the attribute.
215+
let genMnemonicAlias = 1;
192216
}
193217

194218
def LoopUnswitchAttr : LLVM_Attr<"LoopUnswitch", "loop_unswitch"> {
@@ -202,6 +226,9 @@ def LoopUnswitchAttr : LLVM_Attr<"LoopUnswitch", "loop_unswitch"> {
202226
);
203227

204228
let assemblyFormat = "`<` struct(params) `>`";
229+
230+
// Generate mnemonic alias for the attribute.
231+
let genMnemonicAlias = 1;
205232
}
206233

207234
def LoopAnnotationAttr : LLVM_Attr<"LoopAnnotation", "loop_annotation"> {
@@ -232,6 +259,9 @@ def LoopAnnotationAttr : LLVM_Attr<"LoopAnnotation", "loop_annotation"> {
232259
);
233260

234261
let assemblyFormat = "`<` struct(params) `>`";
262+
263+
// Generate mnemonic alias for the attribute.
264+
let genMnemonicAlias = 1;
235265
}
236266

237267
//===----------------------------------------------------------------------===//
@@ -311,6 +341,9 @@ def LLVM_DIExpressionAttr : LLVM_Attr<"DIExpression", "di_expression"> {
311341
def LLVM_DINullTypeAttr : LLVM_Attr<"DINullType", "di_null_type",
312342
/*traits=*/[], "DITypeAttr"> {
313343
let parameters = (ins);
344+
345+
// Generate mnemonic alias for the attribute.
346+
let genMnemonicAlias = 1;
314347
}
315348

316349
//===----------------------------------------------------------------------===//
@@ -336,6 +369,9 @@ def LLVM_DIBasicTypeAttr : LLVM_Attr<"DIBasicType", "di_basic_type",
336369
}]>
337370
];
338371
let assemblyFormat = "`<` struct(params) `>`";
372+
373+
// Generate mnemonic alias for the attribute.
374+
let genMnemonicAlias = 1;
339375
}
340376

341377
//===----------------------------------------------------------------------===//
@@ -365,6 +401,9 @@ def LLVM_DICompileUnitAttr : LLVM_Attr<"DICompileUnit", "di_compile_unit",
365401
}]>
366402
];
367403
let assemblyFormat = "`<` struct(params) `>`";
404+
405+
// Generate mnemonic alias for the attribute.
406+
let genMnemonicAlias = 1;
368407
}
369408

370409
//===----------------------------------------------------------------------===//
@@ -422,6 +461,9 @@ def LLVM_DICompositeTypeAttr : LLVM_Attr<"DICompositeType", "di_composite_type",
422461

423462
/// @}
424463
}];
464+
465+
// Generate mnemonic alias for the attribute.
466+
let genMnemonicAlias = 1;
425467
}
426468

427469
//===----------------------------------------------------------------------===//
@@ -441,6 +483,9 @@ def LLVM_DIDerivedTypeAttr : LLVM_Attr<"DIDerivedType", "di_derived_type",
441483
OptionalParameter<"DINodeAttr">:$extraData
442484
);
443485
let assemblyFormat = "`<` struct(params) `>`";
486+
487+
// Generate mnemonic alias for the attribute.
488+
let genMnemonicAlias = 1;
444489
}
445490

446491
//===----------------------------------------------------------------------===//
@@ -455,6 +500,9 @@ def LLVM_DIFileAttr : LLVM_Attr<"DIFile", "di_file", /*traits=*/[], "DIScopeAttr
455500
}]>
456501
];
457502
let assemblyFormat = "`<` $name `in` $directory `>`";
503+
504+
// Generate mnemonic alias for the attribute.
505+
let genMnemonicAlias = 1;
458506
}
459507

460508
//===----------------------------------------------------------------------===//
@@ -469,6 +517,9 @@ def LLVM_DIGlobalVariableExpressionAttr
469517
);
470518
let assemblyFormat = "`<` struct(params) `>`";
471519
let constBuilderCall = "$0";
520+
521+
// Generate mnemonic alias for the attribute.
522+
let genMnemonicAlias = 1;
472523
}
473524

474525
def DIGlobalVariableExpressionArrayAttr :
@@ -492,6 +543,9 @@ def LLVM_DIGlobalVariable : LLVM_Attr<"DIGlobalVariable", "di_global_variable",
492543
OptionalParameter<"bool">:$isDefined,
493544
OptionalParameter<"unsigned">:$alignInBits);
494545
let assemblyFormat = "`<` struct(params) `>`";
546+
547+
// Generate mnemonic alias for the attribute.
548+
let genMnemonicAlias = 1;
495549
}
496550

497551
//===----------------------------------------------------------------------===//
@@ -515,6 +569,9 @@ def LLVM_DILexicalBlockAttr : LLVM_Attr<"DILexicalBlock", "di_lexical_block",
515569
}]>
516570
];
517571
let assemblyFormat = "`<` struct(params) `>`";
572+
573+
// Generate mnemonic alias for the attribute.
574+
let genMnemonicAlias = 1;
518575
}
519576

520577
//===----------------------------------------------------------------------===//
@@ -536,6 +593,9 @@ def LLVM_DILexicalBlockFile : LLVM_Attr<"DILexicalBlockFile", "di_lexical_block_
536593
}]>
537594
];
538595
let assemblyFormat = "`<` struct(params) `>`";
596+
597+
// Generate mnemonic alias for the attribute.
598+
let genMnemonicAlias = 1;
539599
}
540600

541601
//===----------------------------------------------------------------------===//
@@ -566,6 +626,9 @@ def LLVM_DILocalVariableAttr : LLVM_Attr<"DILocalVariable", "di_local_variable",
566626
}]>
567627
];
568628
let assemblyFormat = "`<` struct(params) `>`";
629+
630+
// Generate mnemonic alias for the attribute.
631+
let genMnemonicAlias = 1;
569632
}
570633

571634
//===----------------------------------------------------------------------===//
@@ -619,6 +682,9 @@ def LLVM_DISubprogramAttr : LLVM_Attr<"DISubprogram", "di_subprogram",
619682

620683
/// @}
621684
}];
685+
686+
// Generate mnemonic alias for the attribute.
687+
let genMnemonicAlias = 1;
622688
}
623689

624690
//===----------------------------------------------------------------------===//
@@ -639,6 +705,9 @@ def LLVM_DIModuleAttr : LLVM_Attr<"DIModule", "di_module",
639705
);
640706

641707
let assemblyFormat = "`<` struct(params) `>`";
708+
709+
// Generate mnemonic alias for the attribute.
710+
let genMnemonicAlias = 1;
642711
}
643712

644713
//===----------------------------------------------------------------------===//
@@ -654,6 +723,9 @@ def LLVM_DINamespaceAttr : LLVM_Attr<"DINamespace", "di_namespace",
654723
);
655724

656725
let assemblyFormat = "`<` struct(params) `>`";
726+
727+
// Generate mnemonic alias for the attribute.
728+
let genMnemonicAlias = 1;
657729
}
658730

659731
//===----------------------------------------------------------------------===//
@@ -673,6 +745,9 @@ def LLVM_DIImportedEntityAttr : LLVM_Attr<"DIImportedEntity", "di_imported_entit
673745
);
674746

675747
let assemblyFormat = "`<` struct(params) `>`";
748+
749+
// Generate mnemonic alias for the attribute.
750+
let genMnemonicAlias = 1;
676751
}
677752

678753
//===----------------------------------------------------------------------===//
@@ -719,6 +794,9 @@ def LLVM_DICommonBlockAttr : LLVM_Attr<"DICommonBlock", "di_common_block",
719794
OptionalParameter<"unsigned">:$line
720795
);
721796
let assemblyFormat = "`<` struct(params) `>`";
797+
798+
// Generate mnemonic alias for the attribute.
799+
let genMnemonicAlias = 1;
722800
}
723801

724802
//===----------------------------------------------------------------------===//
@@ -753,6 +831,9 @@ def LLVM_DISubroutineTypeAttr : LLVM_Attr<"DISubroutineType", "di_subroutine_typ
753831
}]>
754832
];
755833
let assemblyFormat = "`<` struct(params) `>`";
834+
835+
// Generate mnemonic alias for the attribute.
836+
let genMnemonicAlias = 1;
756837
}
757838

758839
//===----------------------------------------------------------------------===//
@@ -778,6 +859,9 @@ def LLVM_DILabelAttr : LLVM_Attr<"DILabel", "di_label",
778859
];
779860

780861
let assemblyFormat = "`<` struct(params) `>`";
862+
863+
// Generate mnemonic alias for the attribute.
864+
let genMnemonicAlias = 1;
781865
}
782866

783867
//===----------------------------------------------------------------------===//
@@ -797,6 +881,9 @@ def LLVM_DIStringTypeAttr : LLVM_Attr<"DIStringType", "di_string_type",
797881
LLVM_DIEncodingParameter:$encoding
798882
);
799883
let assemblyFormat = "`<` struct(params) `>`";
884+
885+
// Generate mnemonic alias for the attribute.
886+
let genMnemonicAlias = 1;
800887
}
801888

802889
//===----------------------------------------------------------------------===//
@@ -845,6 +932,9 @@ def LLVM_AliasScopeDomainAttr : LLVM_Attr<"AliasScopeDomain",
845932
}];
846933

847934
let assemblyFormat = "`<` struct(params) `>`";
935+
936+
// Generate mnemonic alias for the attribute.
937+
let genMnemonicAlias = 1;
848938
}
849939

850940
//===----------------------------------------------------------------------===//
@@ -902,6 +992,9 @@ def LLVM_AliasScopeAttr : LLVM_Attr<"AliasScope", "alias_scope"> {
902992
let assemblyFormat = "`<` struct(params) `>`";
903993

904994
let genVerifyDecl = 1;
995+
996+
// Generate mnemonic alias for the attribute.
997+
let genMnemonicAlias = 1;
905998
}
906999

9071000
def LLVM_AliasScopeArrayAttr
@@ -937,6 +1030,9 @@ def LLVM_AccessGroupAttr : LLVM_Attr<"AccessGroup", "access_group"> {
9371030
}];
9381031

9391032
let assemblyFormat = "`<` struct(params) `>`";
1033+
1034+
// Generate mnemonic alias for the attribute.
1035+
let genMnemonicAlias = 1;
9401036
}
9411037

9421038
def LLVM_AccessGroupArrayAttr
@@ -967,6 +1063,9 @@ def LLVM_TBAARootAttr : LLVM_Attr<"TBAARoot", "tbaa_root", [], "TBAANodeAttr"> {
9671063
}];
9681064

9691065
let assemblyFormat = "(`<` struct(params)^ `>`)?";
1066+
1067+
// Generate mnemonic alias for the attribute.
1068+
let genMnemonicAlias = 1;
9701069
}
9711070

9721071
//===----------------------------------------------------------------------===//
@@ -1040,6 +1139,9 @@ def LLVM_TBAATypeDescriptorAttr : LLVM_Attr<"TBAATypeDescriptor",
10401139
}];
10411140

10421141
let assemblyFormat = "`<` struct(params) `>`";
1142+
1143+
// Generate mnemonic alias for the attribute.
1144+
let genMnemonicAlias = 1;
10431145
}
10441146

10451147
//===----------------------------------------------------------------------===//
@@ -1082,6 +1184,9 @@ def LLVM_TBAATagAttr : LLVM_Attr<"TBAATag", "tbaa_tag"> {
10821184
}];
10831185

10841186
let assemblyFormat = "`<` struct(params) `>`";
1187+
1188+
// Generate mnemonic alias for the attribute.
1189+
let genMnemonicAlias = 1;
10851190
}
10861191

10871192
def LLVM_TBAATagArrayAttr

mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp

-33
Original file line numberDiff line numberDiff line change
@@ -3765,36 +3765,6 @@ void CallIntrinsicOp::print(OpAsmPrinter &p) {
37653765
/*isVariadic=*/false, getResultTypes(), getResAttrsAttr());
37663766
}
37673767

3768-
//===----------------------------------------------------------------------===//
3769-
// OpAsmDialectInterface
3770-
//===----------------------------------------------------------------------===//
3771-
3772-
namespace {
3773-
struct LLVMOpAsmDialectInterface : public OpAsmDialectInterface {
3774-
using OpAsmDialectInterface::OpAsmDialectInterface;
3775-
3776-
AliasResult getAlias(Attribute attr, raw_ostream &os) const override {
3777-
return TypeSwitch<Attribute, AliasResult>(attr)
3778-
.Case<AccessGroupAttr, AliasScopeAttr, AliasScopeDomainAttr,
3779-
DIBasicTypeAttr, DICommonBlockAttr, DICompileUnitAttr,
3780-
DICompositeTypeAttr, DIDerivedTypeAttr, DIFileAttr,
3781-
DIGlobalVariableAttr, DIGlobalVariableExpressionAttr,
3782-
DIImportedEntityAttr, DILabelAttr, DILexicalBlockAttr,
3783-
DILexicalBlockFileAttr, DILocalVariableAttr, DIModuleAttr,
3784-
DINamespaceAttr, DINullTypeAttr, DIStringTypeAttr,
3785-
DISubprogramAttr, DISubroutineTypeAttr, LoopAnnotationAttr,
3786-
LoopVectorizeAttr, LoopInterleaveAttr, LoopUnrollAttr,
3787-
LoopUnrollAndJamAttr, LoopLICMAttr, LoopDistributeAttr,
3788-
LoopPipelineAttr, LoopPeeledAttr, LoopUnswitchAttr, TBAARootAttr,
3789-
TBAATagAttr, TBAATypeDescriptorAttr>([&](auto attr) {
3790-
os << decltype(attr)::getMnemonic();
3791-
return AliasResult::OverridableAlias;
3792-
})
3793-
.Default([](Attribute) { return AliasResult::NoAlias; });
3794-
}
3795-
};
3796-
} // namespace
3797-
37983768
//===----------------------------------------------------------------------===//
37993769
// LinkerOptionsOp
38003770
//===----------------------------------------------------------------------===//
@@ -3991,9 +3961,6 @@ void LLVMDialect::initialize() {
39913961

39923962
// Support unknown operations because not all LLVM operations are registered.
39933963
allowUnknownOperations();
3994-
// clang-format off
3995-
addInterfaces<LLVMOpAsmDialectInterface>();
3996-
// clang-format on
39973964
declarePromisedInterface<DialectInlinerInterface, LLVMDialect>();
39983965
}
39993966

0 commit comments

Comments
 (0)