Author: Maciej Fijalkowski <fij...@gmail.com> Branch: gc_no_cleanup_nursery Changeset: r73633:86b8d1f0b17d Date: 2014-09-21 13:05 +0200 http://bitbucket.org/pypy/pypy/changeset/86b8d1f0b17d/
Log: fixes diff --git a/rpython/jit/backend/llsupport/rewrite.py b/rpython/jit/backend/llsupport/rewrite.py --- a/rpython/jit/backend/llsupport/rewrite.py +++ b/rpython/jit/backend/llsupport/rewrite.py @@ -62,6 +62,8 @@ if op.is_malloc(): self.handle_malloc_operation(op) continue + if op.is_guard(): + self.emit_pending_zeros() elif op.getopnum() == rop.CLEAR_ARRAY_CONTENTS: self.handle_clear_array_contents(op.getdescr(), op.getarg(0)) continue @@ -136,7 +138,6 @@ self.delayed_zero_setfields[result] = d for ofs in descr.offsets_of_gcfields: d[ofs] = None - self.delayed_zero_setfields.clear() def consider_setfield_gc(self, op): offset = self.cpu.unpack_fielddescr(op.getdescr()) @@ -298,6 +299,7 @@ for ofs in d.iterkeys(): op = ResOperation(rop.ZERO_PTR_FIELD, [v, ConstInt(ofs)], None) self.newops.append(op) + self.delayed_zero_setfields.clear() def _gen_call_malloc_gc(self, args, v_result, descr): """Generate a CALL_MALLOC_GC with the given args.""" diff --git a/rpython/jit/backend/llsupport/test/test_rewrite.py b/rpython/jit/backend/llsupport/test/test_rewrite.py --- a/rpython/jit/backend/llsupport/test/test_rewrite.py +++ b/rpython/jit/backend/llsupport/test/test_rewrite.py @@ -122,6 +122,9 @@ def unpack_arraydescr_size(self, d): return 0, d.itemsize, 0 + def unpack_fielddescr(self, d): + return d.offset + def arraydescrof(self, ARRAY): try: return self._cache[ARRAY] diff --git a/rpython/jit/codewriter/heaptracker.py b/rpython/jit/codewriter/heaptracker.py --- a/rpython/jit/codewriter/heaptracker.py +++ b/rpython/jit/codewriter/heaptracker.py @@ -140,6 +140,4 @@ res.append(offset) elif isinstance(FIELD, lltype.Struct): offsets_of_gcfields(gccache, FIELD, res) - if not gccache.translate_support_code: - res.sort() return res _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit