[pypy-commit] pypy default: interning ints aswell

hakanardo noreply at buildbot.pypy.org
Thu Nov 3 11:03:25 CET 2011


Author: Hakan Ardo <hakan at debian.org>
Branch: 
Changeset: r48681:d0466dedbb14
Date: 2011-11-03 07:34 +0100
http://bitbucket.org/pypy/pypy/changeset/d0466dedbb14/

Log:	interning ints aswell

diff --git a/pypy/jit/metainterp/optimizeopt/optimizer.py b/pypy/jit/metainterp/optimizeopt/optimizer.py
--- a/pypy/jit/metainterp/optimizeopt/optimizer.py
+++ b/pypy/jit/metainterp/optimizeopt/optimizer.py
@@ -1,6 +1,6 @@
 from pypy.jit.metainterp import jitprof, resume, compile
 from pypy.jit.metainterp.executor import execute_nonspec
-from pypy.jit.metainterp.history import BoxInt, BoxFloat, Const, ConstInt, REF
+from pypy.jit.metainterp.history import BoxInt, BoxFloat, Const, ConstInt, REF, INT
 from pypy.jit.metainterp.optimizeopt.intutils import IntBound, IntUnbounded, \
                                                      ImmutableIntUnbounded, \
                                                      IntLowerBound, MININT, MAXINT
@@ -326,6 +326,7 @@
         self.bridge = bridge
         self.values = {}
         self.interned_refs = self.cpu.ts.new_ref_dict()
+        self.interned_ints = {}
         self.resumedata_memo = resume.ResumeDataLoopMemo(metainterp_sd)
         self.bool_boxes = {}
         self.producer = {}
@@ -398,6 +399,9 @@
             if not value:
                 return box
             return self.interned_refs.setdefault(value, box)
+        elif constbox.type == INT:
+            value = constbox.getint()
+            return self.interned_ints.setdefault(value, box)
         else:
             return box
 


More information about the pypy-commit mailing list