diff --git a/vyper/venom/analysis/dfg.py b/vyper/venom/analysis/dfg.py index 328ed47c72..821c81fa47 100644 --- a/vyper/venom/analysis/dfg.py +++ b/vyper/venom/analysis/dfg.py @@ -31,6 +31,9 @@ def remove_use(self, op: IRVariable, inst: IRInstruction): uses = self._dfg_inputs.get(op, []) uses.remove(inst) + def remove_var(self, op: IRVariable): + self._dfg_outputs.pop(op) + @property def outputs(self) -> dict[IRVariable, IRInstruction]: return self._dfg_outputs diff --git a/vyper/venom/passes/remove_unused_variables.py b/vyper/venom/passes/remove_unused_variables.py index be9c1ed535..13867c4cbc 100644 --- a/vyper/venom/passes/remove_unused_variables.py +++ b/vyper/venom/passes/remove_unused_variables.py @@ -42,4 +42,5 @@ def _process_instruction(self, inst): new_uses = self.dfg.get_uses(operand) self.work_list.addmany(new_uses) + self.dfg.remove_var(inst.output) inst.parent.remove_instruction(inst)