@@ -539,7 +539,7 @@ struct ConvertArmSMEToLLVMPass
539
539
LLVMConversionTarget target (getContext ());
540
540
RewritePatternSet patterns (&getContext ());
541
541
LLVMTypeConverter converter (&getContext ());
542
- configureArmSMEToLLVMConversionLegality (target, converter );
542
+ configureArmSMEToLLVMConversionLegality (target);
543
543
populateArmSMEToLLVMConversionPatterns (converter, patterns);
544
544
545
545
if (failed (applyPartialConversion (getOperation (), target,
@@ -550,8 +550,7 @@ struct ConvertArmSMEToLLVMPass
550
550
551
551
} // namespace
552
552
553
- void mlir::configureArmSMEToLLVMConversionLegality (
554
- ConversionTarget &target, LLVMTypeConverter &typeConverter) {
553
+ void mlir::configureArmSMEToLLVMConversionLegality (ConversionTarget &target) {
555
554
target.addIllegalDialect <arm_sme::ArmSMEDialect>();
556
555
target.addLegalOp <
557
556
arm_sme::MaterializeSSATileOp, arm_sme::aarch64_sme_zero,
@@ -570,17 +569,18 @@ void mlir::configureArmSMEToLLVMConversionLegality(
570
569
arm_sme::aarch64_sme_write_vert, arm_sme::aarch64_sme_mopa>();
571
570
target.addLegalDialect <arith::ArithDialect>();
572
571
target.addLegalOp <UnrealizedConversionCastOp>();
573
- typeConverter.addConversion ([&](VectorType type) -> std::optional<Type> {
572
+ }
573
+
574
+ void mlir::populateArmSMEToLLVMConversionPatterns (LLVMTypeConverter &converter,
575
+ RewritePatternSet &patterns) {
576
+ converter.addConversion ([&](VectorType type) -> std::optional<Type> {
574
577
// There's no LLVM type for SME tiles, but after lowering to intrinsics all
575
578
// SME vector types should be eliminated.
576
579
if (arm_sme::isValidSMETileVectorType (type))
577
580
return type;
578
581
return std::nullopt;
579
582
});
580
- }
581
583
582
- void mlir::populateArmSMEToLLVMConversionPatterns (LLVMTypeConverter &converter,
583
- RewritePatternSet &patterns) {
584
584
patterns.add <LoadTileSliceConversion, MoveTileSliceToVectorConversion,
585
585
MoveVectorToTileSliceConversion, StoreTileSliceConversion,
586
586
OuterProductOpConversion, ZeroOpConversion, GetTileConversion>(
0 commit comments