Author: fijal
Branch: jit-leaner-frontend
Changeset: r83062:106e5d6db9cb
Date: 2016-03-15 08:58 +0200
http://bitbucket.org/pypy/pypy/changeset/106e5d6db9cb/

Log:    a different approach - let's try not to intern constants

diff --git a/rpython/jit/metainterp/opencoder.py 
b/rpython/jit/metainterp/opencoder.py
--- a/rpython/jit/metainterp/opencoder.py
+++ b/rpython/jit/metainterp/opencoder.py
@@ -249,37 +249,36 @@
                 SMALL_INT_START <= box.getint() < SMALL_INT_STOP):
                 return tag(TAGINT, box.getint())
             elif isinstance(box, ConstInt):
-                self._consts_bigint += 1
-                if not isinstance(box.getint(), int):
-                    # symbolics, for tests, don't worry about caching
-                    v = len(self._bigints) << 1
-                    self._bigints.append(box.getint())
-                else:
-                    v = self._bigints_dict.get(box.getint(), -1)
-                    if v == -1:
-                        v = len(self._bigints) << 1
-                        self._bigints_dict[box.getint()] = v
-                        self._bigints.append(box.getint())
+                #self._consts_bigint += 1
+                #if not isinstance(box.getint(), int):
+                #    # symbolics, for tests, don't worry about caching
+                #    v = len(self._bigints) << 1
+                #    self._bigints.append(box.getint())
+                #else:
+                #    v = self._bigints_dict.get(box.getint(), -1)
+                #    if v == -1:
+                v = len(self._bigints) << 1
+                #        self._bigints_dict[box.getint()] = v
+                self._bigints.append(box.getint())
                 return tag(TAGCONSTOTHER, v)
             elif isinstance(box, ConstFloat):
                 self._consts_float += 1
-                v = self._floats_dict.get(box.getfloat(), -1)
-                if v == -1:
-                    v = (len(self._floats) << 1) | 1
-                    self._floats_dict[box.getfloat()] = v
-                    self._floats.append(box.getfloat())
+                #v = self._floats_dict.get(box.getfloat(), -1)
+                #if v == -1:
+                v = (len(self._floats) << 1) | 1
+                #self._floats_dict[box.getfloat()] = v
+                self._floats.append(box.getfloat())
                 return tag(TAGCONSTOTHER, v)
             else:
                 self._consts_ptr += 1
                 assert isinstance(box, ConstPtr)
                 if not box.getref_base():
                     return tag(TAGCONSTPTR, 0)
-                addr = box.getref_base()
-                v = self._refs_dict.get(addr, -1)
-                if v == -1:
-                    v = len(self._refs)
-                    self._refs_dict[addr] = v
-                    self._refs.append(box.getref_base())
+                #v = self._refs_dict.get(addr, -1)
+                #if v == -1:
+                #    v = len(self._refs)
+                #    self._refs_dict[addr] = v
+                self._refs.append(box.getref_base())
                 return tag(TAGCONSTPTR, v)
         elif isinstance(box, AbstractResOp):
             return tag(TAGBOX, box.get_position())
diff --git a/rpython/jit/metainterp/test/test_opencoder.py 
b/rpython/jit/metainterp/test/test_opencoder.py
--- a/rpython/jit/metainterp/test/test_opencoder.py
+++ b/rpython/jit/metainterp/test/test_opencoder.py
@@ -13,6 +13,9 @@
     def __init__(self, index):
         self.index = index
 
+class metainterp_sd(object):
+    pass
+
 class FakeFrame(object):
     parent_snapshot = None
 
@@ -38,7 +41,7 @@
 
 class TestOpencoder(object):
     def unpack(self, t):
-        iter = t.get_iter()
+        iter = t.get_iter(metainterp_sd)
         l = []
         while not iter.done():
             op = iter.next()
@@ -142,7 +145,7 @@
     def test_packing(self, i):
         t = Trace([])
         t.record_snapshot_link(i)
-        iter = t.get_iter()
+        iter = t.get_iter(metainterp_sd)
         assert (((-iter._next() - 1) << 15) | (iter._next())) == i
 
     def test_cut_trace_from(self):
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to