From 369a3b6c66125d25eb9b3b9c8dd20ba8ec99c594 Mon Sep 17 00:00:00 2001 From: Francesco Bertolaccini Date: Mon, 27 Jan 2025 14:30:07 +0100 Subject: [PATCH] pr: Pass a `hl::FuncOp` instead of a name to `parser_conversion_pattern_base`. --- lib/vast/Conversion/Parser/ToParser.cpp | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/lib/vast/Conversion/Parser/ToParser.cpp b/lib/vast/Conversion/Parser/ToParser.cpp index ade78ee9d5..dcb7c72f3c 100644 --- a/lib/vast/Conversion/Parser/ToParser.cpp +++ b/lib/vast/Conversion/Parser/ToParser.cpp @@ -281,18 +281,17 @@ namespace vast::conv { : base(mctx), models(models) {} - static std::optional< function_model > get_model( - const function_models &models, string_ref name - ) { - if (auto kv = models.find(name); kv != models.end()) { + static std::optional< function_model > + get_model(const function_models &models, hl::FuncOp func) { + if (auto kv = models.find(func.getSymName()); kv != models.end()) { return kv->second; } return std::nullopt; } - std::optional< function_model > get_model(string_ref name) const { - return get_model(models, name); + std::optional< function_model > get_model(hl::FuncOp func) const { + return get_model(models, func); } const function_models ⊧ @@ -494,7 +493,7 @@ namespace vast::conv { op_t op, adaptor_t adaptor, conversion_rewriter &rewriter ) const override { auto func = op->getParentOfType< hl::FuncOp >(); - auto model = get_model(func.getSymName()); + auto model = get_model(func); auto rty = model ? model->get_return_type(rewriter.getContext()) @@ -534,7 +533,7 @@ namespace vast::conv { logical_result matchAndRewrite( op_t op, adaptor_t adaptor, conversion_rewriter &rewriter ) const override { - auto tc = function_type_converter(*rewriter.getContext(), get_model(op.getSymName())); + auto tc = function_type_converter(*rewriter.getContext(), get_model(op)); if (auto func_op = mlir::dyn_cast< core::function_op_interface >(op.getOperation())) { return this->replace(func_op, rewriter, tc); } @@ -545,9 +544,8 @@ namespace vast::conv { static void legalize(parser_conversion_config &cfg) { cfg.target.addLegalOp< mlir::UnrealizedConversionCastOp >(); cfg.target.addDynamicallyLegalOp< op_t >([models = cfg.models](op_t op) { - return function_type_converter( - *op.getContext(), get_model(models, op.getSymName()) - ).isLegal(op.getFunctionType()); + return function_type_converter(*op.getContext(), get_model(models, op)) + .isLegal(op.getFunctionType()); }); } };