From 61fefde35ae9b01074d9d6b1956b6f435eaa5a1d Mon Sep 17 00:00:00 2001 From: Quentin Bourgerie Date: Wed, 16 Feb 2022 10:29:27 +0100 Subject: [PATCH] fix(compiler): Compilation gcc7 --- .../ConcreteToBConcrete.cpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/compiler/lib/Conversion/ConcreteToBConcrete/ConcreteToBConcrete.cpp b/compiler/lib/Conversion/ConcreteToBConcrete/ConcreteToBConcrete.cpp index 8ca525063..02a87b0d6 100644 --- a/compiler/lib/Conversion/ConcreteToBConcrete/ConcreteToBConcrete.cpp +++ b/compiler/lib/Conversion/ConcreteToBConcrete/ConcreteToBConcrete.cpp @@ -601,6 +601,17 @@ struct MemrefOpPattern : public mlir::OpRewritePattern { }; }; +template +void insertMemrefOpPatternImpl(mlir::MLIRContext &context, + mlir::RewritePatternSet &patterns, + mlir::ConversionTarget &target) { + patterns.insert>(&context); + target.addDynamicallyLegalOp([&](MemrefOp op) { + ConcreteToBConcreteTypeConverter converter; + return converter.isLegal(op->getResultTypes()); + }); +} + // Add the instantiated MemrefOpPattern rewrite pattern with the `MemrefOp` // to the patterns set and populate the conversion target. template @@ -608,12 +619,8 @@ void insertMemrefOpPattern(mlir::MLIRContext &context, mlir::RewritePatternSet &patterns, mlir::ConversionTarget &target) { (void)std::initializer_list{ - 0, (patterns.insert>(&context), - target.addDynamicallyLegalOp([&](MemrefOp op) { - ConcreteToBConcreteTypeConverter converter; - return converter.isLegal(op->getResultTypes()); - }), - 0)...}; + 0, + (insertMemrefOpPatternImpl(context, patterns, target), 0)...}; } // cc from Loops.cpp