From 7d17f325de37a93aadfbcc68ca83aa4ab67a9c95 Mon Sep 17 00:00:00 2001 From: Benjamin Maxwell Date: Sat, 13 Jan 2024 15:50:55 +0000 Subject: [PATCH] [mlir][ArmSME] Workaround for old versions of GCC (NFC) See: https://github.com/llvm/llvm-project/pull/76086#issuecomment-1890424955 --- .../Conversion/ArmSMEToLLVM/ArmSMEToLLVM.cpp | 40 ++++++++++--------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/mlir/lib/Conversion/ArmSMEToLLVM/ArmSMEToLLVM.cpp b/mlir/lib/Conversion/ArmSMEToLLVM/ArmSMEToLLVM.cpp index f78b06776606e..478253788a69b 100644 --- a/mlir/lib/Conversion/ArmSMEToLLVM/ArmSMEToLLVM.cpp +++ b/mlir/lib/Conversion/ArmSMEToLLVM/ArmSMEToLLVM.cpp @@ -364,29 +364,31 @@ struct ConvertArmSMEOpToLLVMPattern : ConvertOpToLLVMPattern { } }; +template +static void addArmSMEConversionPattern(RewritePatternSet &patterns, + LLVMTypeConverter const &typeConverter) { + // Register spills/fills for ops that implement the + // `ArmSMETileOpInterface` and have `requiresSpillsAndFills` set to + // `RequiresSpillsAndFills::Yes`. + if constexpr (Pattern::requiresSpillsAndFillsConversion() && + std::is_base_of_v, + typename Pattern::ArmSMEOp>) { + // Add spill/fill conversions with a very high benefit to ensure + // they are lowered first. + patterns.add( + Pattern::ArmSMEOp::getOperationName(), typeConverter, + /*benefit=*/1337); + } + patterns.add(typeConverter); +} + /// Helper to register `ConvertArmSMEOpToLLVMPattern` patterns. -template +template static void addArmSMEConversionPatterns(RewritePatternSet &patterns, LLVMTypeConverter const &typeConverter) { - ( - [&] { - // Register spills/fills for ops that implement the - // `ArmSMETileOpInterface` and have `requiresSpillsAndFills` set to - // `RequiresSpillsAndFills::Yes`. - if constexpr (Pattern::requiresSpillsAndFillsConversion() && - std::is_base_of_v, - typename Pattern::ArmSMEOp>) { - // Add spill/fill conversions with a very high benefit to ensure - // they are lowered first. - patterns.add( - Pattern::ArmSMEOp::getOperationName(), typeConverter, - /*benefit=*/1337); - } - patterns.add(typeConverter); - }(), - ...); + (addArmSMEConversionPattern(patterns, typeConverter), ...); } struct GetTileConversion