Author: Spenser Andrew Bauman <[email protected]>
Branch: remove-getfield-pure
Changeset: r81517:3113c5395a56
Date: 2016-01-01 03:07 -0500
http://bitbucket.org/pypy/pypy/changeset/3113c5395a56/
Log: Treat quasiimmut fields as pure for optimization purposes
diff --git a/rpython/jit/backend/llgraph/runner.py
b/rpython/jit/backend/llgraph/runner.py
--- a/rpython/jit/backend/llgraph/runner.py
+++ b/rpython/jit/backend/llgraph/runner.py
@@ -152,7 +152,7 @@
self.fieldname = fieldname
self.FIELD = getattr(S, fieldname)
self.index = heaptracker.get_fielddescr_index_in(S, fieldname)
- self._is_pure = S._immutable_field(fieldname)
+ self._is_pure = S._immutable_field(fieldname) != False
def is_always_pure(self):
return self._is_pure
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
@@ -200,7 +200,7 @@
flag = get_type_flag(FIELDTYPE)
name = '%s.%s' % (STRUCT._name, fieldname)
index_in_parent = heaptracker.get_fielddescr_index_in(STRUCT,
fieldname)
- is_pure = bool(STRUCT._immutable_field(fieldname))
+ is_pure = STRUCT._immutable_field(fieldname) != False
fielddescr = FieldDescr(name, offset, size, flag, index_in_parent,
is_pure)
cachedict = cache.setdefault(STRUCT, {})
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit