[pypy-svn] r52238 - in pypy/branch/jit-refactoring/pypy/jit/rainbow: . test

arigo at codespeak.net arigo at codespeak.net
Fri Mar 7 10:48:12 CET 2008


Author: arigo
Date: Fri Mar  7 10:48:12 2008
New Revision: 52238

Modified:
   pypy/branch/jit-refactoring/pypy/jit/rainbow/interpreter.py
   pypy/branch/jit-refactoring/pypy/jit/rainbow/test/test_serializegraph.py
Log:
Use None instead of empty lists for the descs.


Modified: pypy/branch/jit-refactoring/pypy/jit/rainbow/interpreter.py
==============================================================================
--- pypy/branch/jit-refactoring/pypy/jit/rainbow/interpreter.py	(original)
+++ pypy/branch/jit-refactoring/pypy/jit/rainbow/interpreter.py	Fri Mar  7 10:48:12 2008
@@ -29,32 +29,31 @@
                  promotiondescs, called_bytecodes, num_mergepoints,
                  graph_color, calldescs, metacalldescs,
                  indirectcalldescs, is_portal):
-        # XXX quite a lot of lists of descs here...  We should at least
-        # try to share the empty lists between the numberous prebuilt
-        # JitCode instances.  A better approach memory-wise could be
+        # XXX quite a lot of lists of descs here...  At least we replace
+        # empty lists with None.  A better approach memory-wise could be
         # to have a single list of descs and use 'assert isinstance'
         # checks; or move these lists to the Interpreter class and
         # do something about the fact that some of these lists could
         # then have more than 65536 items.
         self.name = name
         self.code = code
-        self.constants = constants
-        self.typekinds = typekinds
-        self.redboxclasses = redboxclasses
-        self.keydescs = keydescs
-        self.structtypedescs = structtypedescs
-        self.fielddescs = fielddescs
-        self.arrayfielddescs = arrayfielddescs
-        self.interiordescs = interiordescs
-        self.exceptioninstances = exceptioninstances
-        self.oopspecdescs = oopspecdescs
-        self.promotiondescs = promotiondescs
-        self.called_bytecodes = called_bytecodes
+        self.constants = constants or None
+        self.typekinds = typekinds or None
+        self.redboxclasses = redboxclasses or None
+        self.keydescs = keydescs or None
+        self.structtypedescs = structtypedescs or None
+        self.fielddescs = fielddescs or None
+        self.arrayfielddescs = arrayfielddescs or None
+        self.interiordescs = interiordescs or None
+        self.exceptioninstances = exceptioninstances or None
+        self.oopspecdescs = oopspecdescs or None
+        self.promotiondescs = promotiondescs or None
+        self.called_bytecodes = called_bytecodes or None
         self.num_mergepoints = num_mergepoints
         self.graph_color = graph_color
-        self.calldescs = calldescs
-        self.metacalldescs = metacalldescs
-        self.indirectcalldescs = indirectcalldescs
+        self.calldescs = calldescs or None
+        self.metacalldescs = metacalldescs or None
+        self.indirectcalldescs = indirectcalldescs or None
         self.is_portal = is_portal
 
     def _freeze_(self):

Modified: pypy/branch/jit-refactoring/pypy/jit/rainbow/test/test_serializegraph.py
==============================================================================
--- pypy/branch/jit-refactoring/pypy/jit/rainbow/test/test_serializegraph.py	(original)
+++ pypy/branch/jit-refactoring/pypy/jit/rainbow/test/test_serializegraph.py	Fri Mar  7 10:48:12 2008
@@ -63,10 +63,10 @@
                                         "make_new_redvars", 1, 2,
                                         "make_new_greenvars", 0,
                                         "red_return")
-        assert len(jitcode.constants) == 0
-        assert len(jitcode.typekinds) == 0
+        assert not jitcode.constants
+        assert not jitcode.typekinds
         assert jitcode.is_portal
-        assert len(jitcode.called_bytecodes) == 0
+        assert not jitcode.called_bytecodes
 
     def test_constant(self):
         def f(x):
@@ -82,7 +82,7 @@
         assert len(jitcode.typekinds) == 1
         assert len(jitcode.redboxclasses) == 1
         assert jitcode.is_portal
-        assert len(jitcode.called_bytecodes) == 0
+        assert not jitcode.called_bytecodes
  
     def test_green_switch(self):
         def f(x, y, z):
@@ -105,10 +105,10 @@
                             "goto", tlabel("return"),
                             )
         assert jitcode.code == expected
-        assert len(jitcode.constants) == 0
-        assert len(jitcode.typekinds) == 0
+        assert not jitcode.constants
+        assert not jitcode.typekinds
         assert jitcode.is_portal
-        assert len(jitcode.called_bytecodes) == 0
+        assert not jitcode.called_bytecodes
 
     def test_green_switch2(self):
         def f(x, y, z):
@@ -139,10 +139,10 @@
                             "goto", tlabel("return"),
                             )
         assert jitcode.code == expected
-        assert len(jitcode.constants) == 0
-        assert len(jitcode.typekinds) == 0
+        assert not jitcode.constants
+        assert not jitcode.typekinds
         assert jitcode.is_portal
-        assert len(jitcode.called_bytecodes) == 0
+        assert not jitcode.called_bytecodes
 
     def test_merge(self):
         def f(x, y, z):
@@ -179,7 +179,7 @@
         assert len(jitcode.constants) == 1
         assert len(jitcode.typekinds) == 1
         assert jitcode.is_portal
-        assert len(jitcode.called_bytecodes) == 0
+        assert not jitcode.called_bytecodes
 
     def test_loop(self):
         def f(x):
@@ -209,7 +209,7 @@
                             "make_new_redvars", 2, 2, 4,
                             "goto", tlabel("while"))
         assert jitcode.is_portal
-        assert len(jitcode.called_bytecodes) == 0
+        assert not jitcode.called_bytecodes
 
     def test_dump_loop(self):
         def f(x):
@@ -276,7 +276,7 @@
                                                "make_new_greenvars", 0,
                                                "red_return")
         assert not called_jitcode.is_portal
-        assert len(called_jitcode.called_bytecodes) == 0
+        assert not called_jitcode.called_bytecodes
 
     def test_green_call(self):
         def ll_add_one(x):
@@ -294,7 +294,7 @@
                                         "make_new_greenvars", 0,
                                         "red_return")
         assert jitcode.is_portal
-        assert len(jitcode.called_bytecodes) == 0
+        assert not jitcode.called_bytecodes
         assert len(jitcode.calldescs) == 1
         assert len(jitcode.constants) == 1
 
@@ -333,7 +333,7 @@
                                                "goto", tlabel("return")
                                                )
         assert not called_jitcode.is_portal
-        assert len(called_jitcode.called_bytecodes) == 0
+        assert not called_jitcode.called_bytecodes
 
 class TestLLType(AbstractSerializationTest):
     type_system = "lltype"



More information about the Pypy-commit mailing list