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

arigo at codespeak.net arigo at codespeak.net
Fri Mar 7 10:51:23 CET 2008


Author: arigo
Date: Fri Mar  7 10:51:22 2008
New Revision: 52239

Modified:
   pypy/branch/jit-refactoring/pypy/jit/rainbow/interpreter.py
   pypy/branch/jit-refactoring/pypy/jit/rainbow/test/test_serializegraph.py
Log:
Revert r52238.  Causes blocked blocks everywhere in the tests :-(


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:51:22 2008
@@ -29,31 +29,32 @@
                  promotiondescs, called_bytecodes, num_mergepoints,
                  graph_color, calldescs, metacalldescs,
                  indirectcalldescs, is_portal):
-        # XXX quite a lot of lists of descs here...  At least we replace
-        # empty lists with None.  A better approach memory-wise could be
+        # 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
         # 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 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.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.num_mergepoints = num_mergepoints
         self.graph_color = graph_color
-        self.calldescs = calldescs or None
-        self.metacalldescs = metacalldescs or None
-        self.indirectcalldescs = indirectcalldescs or None
+        self.calldescs = calldescs
+        self.metacalldescs = metacalldescs
+        self.indirectcalldescs = indirectcalldescs
         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:51:22 2008
@@ -63,10 +63,10 @@
                                         "make_new_redvars", 1, 2,
                                         "make_new_greenvars", 0,
                                         "red_return")
-        assert not jitcode.constants
-        assert not jitcode.typekinds
+        assert len(jitcode.constants) == 0
+        assert len(jitcode.typekinds) == 0
         assert jitcode.is_portal
-        assert not jitcode.called_bytecodes
+        assert len(jitcode.called_bytecodes) == 0
 
     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 not jitcode.called_bytecodes
+        assert len(jitcode.called_bytecodes) == 0
  
     def test_green_switch(self):
         def f(x, y, z):
@@ -105,10 +105,10 @@
                             "goto", tlabel("return"),
                             )
         assert jitcode.code == expected
-        assert not jitcode.constants
-        assert not jitcode.typekinds
+        assert len(jitcode.constants) == 0
+        assert len(jitcode.typekinds) == 0
         assert jitcode.is_portal
-        assert not jitcode.called_bytecodes
+        assert len(jitcode.called_bytecodes) == 0
 
     def test_green_switch2(self):
         def f(x, y, z):
@@ -139,10 +139,10 @@
                             "goto", tlabel("return"),
                             )
         assert jitcode.code == expected
-        assert not jitcode.constants
-        assert not jitcode.typekinds
+        assert len(jitcode.constants) == 0
+        assert len(jitcode.typekinds) == 0
         assert jitcode.is_portal
-        assert not jitcode.called_bytecodes
+        assert len(jitcode.called_bytecodes) == 0
 
     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 not jitcode.called_bytecodes
+        assert len(jitcode.called_bytecodes) == 0
 
     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 not jitcode.called_bytecodes
+        assert len(jitcode.called_bytecodes) == 0
 
     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 not called_jitcode.called_bytecodes
+        assert len(called_jitcode.called_bytecodes) == 0
 
     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 not jitcode.called_bytecodes
+        assert len(jitcode.called_bytecodes) == 0
         assert len(jitcode.calldescs) == 1
         assert len(jitcode.constants) == 1
 
@@ -333,7 +333,7 @@
                                                "goto", tlabel("return")
                                                )
         assert not called_jitcode.is_portal
-        assert not called_jitcode.called_bytecodes
+        assert len(called_jitcode.called_bytecodes) == 0
 
 class TestLLType(AbstractSerializationTest):
     type_system = "lltype"


More information about the pypy-svn mailing list