[pypy-svn] r74022 - in pypy/branch/blackhole-improvement/pypy/jit/codewriter: . test
arigo at codespeak.net
arigo at codespeak.net
Fri Apr 23 16:50:17 CEST 2010
Author: arigo
Date: Fri Apr 23 16:50:16 2010
New Revision: 74022
Modified:
pypy/branch/blackhole-improvement/pypy/jit/codewriter/flatten.py
pypy/branch/blackhole-improvement/pypy/jit/codewriter/format.py
pypy/branch/blackhole-improvement/pypy/jit/codewriter/test/test_flatten.py
pypy/branch/blackhole-improvement/pypy/jit/codewriter/test/test_format.py
Log:
Flattening of AbstractDescr.
Modified: pypy/branch/blackhole-improvement/pypy/jit/codewriter/flatten.py
==============================================================================
--- pypy/branch/blackhole-improvement/pypy/jit/codewriter/flatten.py (original)
+++ pypy/branch/blackhole-improvement/pypy/jit/codewriter/flatten.py Fri Apr 23 16:50:16 2010
@@ -1,5 +1,5 @@
from pypy.objspace.flow.model import Variable, Constant
-from pypy.jit.metainterp.history import getkind
+from pypy.jit.metainterp.history import AbstractDescr, getkind
from pypy.rpython.lltypesystem import lltype
@@ -189,6 +189,8 @@
elif isinstance(v, ListOfKind):
lst = [self.getcolor(x) for x in v]
v = ListOfKind(v.kind, lst)
+ elif isinstance(v, AbstractDescr):
+ pass
else:
raise NotImplementedError(type(v))
args.append(v)
Modified: pypy/branch/blackhole-improvement/pypy/jit/codewriter/format.py
==============================================================================
--- pypy/branch/blackhole-improvement/pypy/jit/codewriter/format.py (original)
+++ pypy/branch/blackhole-improvement/pypy/jit/codewriter/format.py Fri Apr 23 16:50:16 2010
@@ -2,6 +2,7 @@
from pypy.objspace.flow.model import Constant
from pypy.jit.codewriter.flatten import SSARepr, Label, TLabel, Register
from pypy.jit.codewriter.flatten import ListOfKind
+from pypy.jit.metainterp.history import AbstractDescr
def format_assembler(ssarepr, dump=True):
@@ -18,6 +19,8 @@
return getlabelname(x)
elif isinstance(x, ListOfKind):
return '%s[%s]' % (x.kind[0], ', '.join(map(repr, x)))
+ elif isinstance(x, AbstractDescr):
+ return '%r' % (x,)
else:
return '<unknown object: %r>' % (x,)
#
Modified: pypy/branch/blackhole-improvement/pypy/jit/codewriter/test/test_flatten.py
==============================================================================
--- pypy/branch/blackhole-improvement/pypy/jit/codewriter/test/test_flatten.py (original)
+++ pypy/branch/blackhole-improvement/pypy/jit/codewriter/test/test_flatten.py Fri Apr 23 16:50:16 2010
@@ -4,6 +4,7 @@
from pypy.jit.codewriter.flatten import GraphFlattener, ListOfKind
from pypy.jit.codewriter.format import format_assembler
from pypy.jit.codewriter.jitter import transform_graph
+from pypy.jit.metainterp.history import AbstractDescr
from pypy.rpython.lltypesystem import lltype, rclass, rstr
from pypy.objspace.flow.model import SpaceOperation, Variable, Constant
from pypy.translator.unsimplify import varoftype
@@ -145,3 +146,14 @@
int_add %i0, %i0, %i1
int_return %i1
""", transform=True)
+
+ def test_descr(self):
+ class FooDescr(AbstractDescr):
+ def __repr__(self):
+ return 'hi_there!'
+ op = SpaceOperation('foobar', [FooDescr()], None)
+ flattener = GraphFlattener(None, fake_regallocs())
+ flattener.serialize_op(op)
+ self.assert_format(flattener.ssarepr, """
+ foobar hi_there!
+ """)
Modified: pypy/branch/blackhole-improvement/pypy/jit/codewriter/test/test_format.py
==============================================================================
--- pypy/branch/blackhole-improvement/pypy/jit/codewriter/test/test_format.py (original)
+++ pypy/branch/blackhole-improvement/pypy/jit/codewriter/test/test_format.py Fri Apr 23 16:50:16 2010
@@ -3,6 +3,7 @@
from pypy.jit.codewriter.format import format_assembler
from pypy.jit.codewriter.flatten import Label, TLabel, SSARepr, Register
from pypy.jit.codewriter.flatten import ListOfKind
+from pypy.jit.metainterp.history import AbstractDescr
from pypy.rpython.lltypesystem import lltype
@@ -67,3 +68,17 @@
foobar i[%i0, $123, %i1]
"""
assert asm == str(py.code.Source(expected)).strip() + '\n'
+
+def test_format_assembler_descr():
+ class FooDescr(AbstractDescr):
+ def __repr__(self):
+ return 'hi_there!'
+ ssarepr = SSARepr("test")
+ ssarepr.insns = [
+ ('foobar', FooDescr()),
+ ]
+ asm = format_assembler(ssarepr)
+ expected = """
+ foobar hi_there!
+ """
+ assert asm == str(py.code.Source(expected)).strip() + '\n'
More information about the Pypy-commit
mailing list