[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