Author: Remi Meier <remi.me...@inf.ethz.ch> Branch: stmgc-c7 Changeset: r73064:ba0e9a5ccb55 Date: 2014-08-26 18:15 +0200 http://bitbucket.org/pypy/pypy/changeset/ba0e9a5ccb55/
Log: tracing was ignoring stm_dont_track_raw_accesses diff --git a/rpython/jit/backend/llsupport/descr.py b/rpython/jit/backend/llsupport/descr.py --- a/rpython/jit/backend/llsupport/descr.py +++ b/rpython/jit/backend/llsupport/descr.py @@ -103,7 +103,7 @@ def is_immutable(self): return self._immutable - + def is_pointer_field(self): return self.flag == FLAG_POINTER @@ -139,6 +139,9 @@ def repr_of_descr(self): return '<Field%s %s %s>' % (self.flag, self.name, self.offset) + def stm_should_track_raw_accesses(self): + return not self.stm_dont_track_raw_accesses + def get_field_descr(gccache, STRUCT, fieldname): cache = gccache._cache_field @@ -215,7 +218,7 @@ def is_immutable(self): return self._immutable - + def is_array_of_pointers(self): return self.flag == FLAG_POINTER @@ -295,7 +298,7 @@ def is_immutable(self): return self._immutable - + def sort_key(self): return self.fielddescr.sort_key() diff --git a/rpython/jit/metainterp/executor.py b/rpython/jit/metainterp/executor.py --- a/rpython/jit/metainterp/executor.py +++ b/rpython/jit/metainterp/executor.py @@ -188,7 +188,8 @@ return BoxInt(cpu.bh_getfield_raw_i(struct, fielddescr, pure)) def do_getfield_raw(cpu, _, structbox, fielddescr): - return _do_getfield_raw(cpu, False, structbox, fielddescr) + pure = not fielddescr.stm_should_track_raw_accesses() + return _do_getfield_raw(cpu, pure, structbox, fielddescr) def do_getfield_raw_pure(cpu, _, structbox, fielddescr): return _do_getfield_raw(cpu, True, structbox, fielddescr) diff --git a/rpython/jit/metainterp/history.py b/rpython/jit/metainterp/history.py --- a/rpython/jit/metainterp/history.py +++ b/rpython/jit/metainterp/history.py @@ -155,6 +155,9 @@ def get_vinfo(self): raise NotImplementedError + def stm_should_track_raw_accesses(self): + return True + class AbstractFailDescr(AbstractDescr): index = -1 final_descr = False _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit