[pypy-commit] pypy arm-backend-2: improve freeing of boxes in the backend

bivab noreply at buildbot.pypy.org
Wed Nov 16 14:14:56 CET 2011


Author: David Schneider <david.schneider at picle.org>
Branch: arm-backend-2
Changeset: r49467:73ba39e70415
Date: 2011-11-16 13:54 +0100
http://bitbucket.org/pypy/pypy/changeset/73ba39e70415/

Log:	improve freeing of boxes in the backend

diff --git a/pypy/jit/backend/arm/assembler.py b/pypy/jit/backend/arm/assembler.py
--- a/pypy/jit/backend/arm/assembler.py
+++ b/pypy/jit/backend/arm/assembler.py
@@ -799,12 +799,17 @@
                                         operations[i+1], fcond)
                 fcond = asm_operations_with_guard[opnum](self, op,
                                         operations[i+1], arglocs, regalloc, fcond)
+                guard = operations[i+1]
+                regalloc.possibly_free_vars_for_op(guard)
+                regalloc.possibly_free_vars(guard.getfailargs())
             elif not we_are_translated() and op.getopnum() == -124:
                 regalloc.prepare_force_spill(op, fcond)
             else:
                 arglocs = regalloc_operations[opnum](regalloc, op, fcond)
                 if arglocs is not None:
                     fcond = asm_operations[opnum](self, op, arglocs, regalloc, fcond)
+            if op.is_guard():
+                regalloc.possibly_free_vars(op.getfailargs())
             if op.result:
                 regalloc.possibly_free_var(op.result)
             regalloc.possibly_free_vars_for_op(op)


More information about the pypy-commit mailing list