From a2dc703d0aa8a87b63b7cc58fd7b37cb5fc8fd52 Mon Sep 17 00:00:00 2001 From: Aniket Singh Yadav Date: Mon, 2 Feb 2026 11:34:14 +0530 Subject: [PATCH 1/2] Fix: preserve Python variable name for returned input aliases --- onnxscript/converter.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/onnxscript/converter.py b/onnxscript/converter.py index dfcddefbd3..cf0f6b225f 100644 --- a/onnxscript/converter.py +++ b/onnxscript/converter.py @@ -1067,7 +1067,10 @@ def ret(exp, i, suffix): if val and val.kind == values.DynamicKind.Input: # In ONNX, a graph-input cannot be an output of the graph. # We need to insert a copy. - return_var = self._emit_copy(return_var, preferred_name) + suggested_name = preferred_name + if isinstance(exp, ast.Name): + suggested_name = exp.id + return_var = self._emit_copy(return_var, suggested_name) for prev_output in self._current_fn.outputs: if prev_output.name == return_var: # ONNX does not allow duplicate output names. From 90b45cc39098647c316e447bd784a43faff73ef7 Mon Sep 17 00:00:00 2001 From: Aniket Singh Yadav Date: Tue, 3 Feb 2026 15:38:15 +0530 Subject: [PATCH 2/2] Fix: preserve Python variable name for returned input aliases --- onnxscript/_internal/converter.py | 19 +++++-------------- onnxscript/converter.py | 0 2 files changed, 5 insertions(+), 14 deletions(-) delete mode 100644 onnxscript/converter.py diff --git a/onnxscript/_internal/converter.py b/onnxscript/_internal/converter.py index b86b2dfc3c..999aa58200 100644 --- a/onnxscript/_internal/converter.py +++ b/onnxscript/_internal/converter.py @@ -1095,29 +1095,20 @@ def check_num_outputs(n): def ret(exp, i, suffix): preferred_name = f"return_val{suffix}" -<<<<<<< HEAD:onnxscript/converter.py - return_var = self._translate_expr(exp, preferred_name).name - val = self._lookup(return_var, self._source_of(exp), False) - if val and val.kind == values.DynamicKind.Input: - # In ONNX, a graph-input cannot be an output of the graph. - # We need to insert a copy. - suggested_name = preferred_name - if isinstance(exp, ast.Name): - suggested_name = exp.id - return_var = self._emit_copy(return_var, suggested_name) -======= return_var = self._translate_expr(exp, preferred_name) val = self._lookup(return_var.name, self._source_of(exp), raise_exception=False) if isinstance(val, values.SymbolValue) and isinstance(val.value, ir.Value): if val.value.is_graph_input(): # In ONNX, a graph-input cannot be an output of the graph. # We need to insert a copy. - return_var = self._emit_copy(return_var, preferred_name) ->>>>>>> upstream/main:onnxscript/_internal/converter.py + suggested_name = preferred_name + if isinstance(exp, ast.Name): + suggested_name = exp.id + return_var = self._emit_copy(return_var, suggested_name) for prev_output in self._current_fn.outputs: if prev_output.name == return_var.name: # ONNX does not allow duplicate output names. - return_var = self._emit_copy(return_var, f"{return_var}_copy") + return_var = self._emit_copy(return_var, f"{return_var.name}_copy") break if self.returntype is not None: set_type_info(return_var, self.returntype[i]) diff --git a/onnxscript/converter.py b/onnxscript/converter.py deleted file mode 100644 index e69de29bb2..0000000000