Author: David Schneider <[email protected]>
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)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit