Author: Remi Meier <[email protected]>
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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit