From 776b044f5f323ef907a8724d9ce9a27a482f6cc5 Mon Sep 17 00:00:00 2001 From: Nicolas Brunie Date: Sun, 18 Nov 2018 11:04:04 +0100 Subject: [PATCH] Improving attribute forwarding in p_expand_multi_precision --- metalibm_core/opt/p_expand_multi_precision.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/metalibm_core/opt/p_expand_multi_precision.py b/metalibm_core/opt/p_expand_multi_precision.py index d26dba60..d2f2c375 100644 --- a/metalibm_core/opt/p_expand_multi_precision.py +++ b/metalibm_core/opt/p_expand_multi_precision.py @@ -166,6 +166,10 @@ def wrapp_expand(op): new_op = expander(*(sum(operands_expansion, [])), precision=elt_precision) # setting dedicated name to expanded node self.tag_expansion(node, new_op) + # forward other attributes + for elt in new_op: + elt.set_debug(node.get_debug()) + elt.set_handle(node.get_handle()) return new_op def expand_add(self, add_node): @@ -408,7 +412,10 @@ def reconstruct_from_transformed(self, node, transformed_node): if isinstance(node, Constant): return node else: - return BuildFromComponent(*tuple(transformed_node), precision=node.precision) + result = BuildFromComponent(*tuple(transformed_node), precision=node.precision) + forward_attributes(node, result) + result.set_tag(node.get_tag()) + return result ## standard Opt pass API def execute(self, optree):