[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