[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