Author: Maciej Fijalkowski <[email protected]>
Branch: optresult-unroll
Changeset: r79538:4f8886b69d60
Date: 2015-09-08 14:37 +0200
http://bitbucket.org/pypy/pypy/changeset/4f8886b69d60/
Log: improve counting of items
diff --git a/rpython/jit/metainterp/resoperation.py
b/rpython/jit/metainterp/resoperation.py
--- a/rpython/jit/metainterp/resoperation.py
+++ b/rpython/jit/metainterp/resoperation.py
@@ -8,8 +8,22 @@
class SettingForwardedOnAbstractValue(Exception):
pass
+class CountingDict(object):
+ def __init__(self):
+ self._d = weakref.WeakKeyDictionary()
+ self.counter = 0
+
+ def __getitem__(self, item):
+ try:
+ return self._d[item]
+ except KeyError:
+ c = self.counter
+ self.counter += 1
+ self._d[item] = c
+ return c
+
class AbstractValue(object):
- _repr_memo = {} # weakref.WeakKeyDictionary()
+ _repr_memo = CountingDict()
is_info_class = False
_attrs_ = ()
namespace = None
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit