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

Reply via email to