[pypy-svn] r73956 - in pypy/branch/blackhole-improvement/pypy/jit: codewriter codewriter/test metainterp metainterp/test

arigo at codespeak.net arigo at codespeak.net
Thu Apr 22 11:08:10 CEST 2010


Author: arigo
Date: Thu Apr 22 11:08:08 2010
New Revision: 73956

Added:
   pypy/branch/blackhole-improvement/pypy/jit/metainterp/blackhole.py
      - copied unchanged from r73939, pypy/branch/blackhole-improvement/pypy/jit/codewriter/blackhole.py
Removed:
   pypy/branch/blackhole-improvement/pypy/jit/codewriter/blackhole.py
   pypy/branch/blackhole-improvement/pypy/jit/codewriter/test/test_blackhole.py
   pypy/branch/blackhole-improvement/pypy/jit/metainterp/codewriter.py
Modified:
   pypy/branch/blackhole-improvement/pypy/jit/codewriter/test/test_codewriter.py
   pypy/branch/blackhole-improvement/pypy/jit/metainterp/pyjitpl.py
   pypy/branch/blackhole-improvement/pypy/jit/metainterp/test/test_basic.py
   pypy/branch/blackhole-improvement/pypy/jit/metainterp/test/test_blackhole.py
   pypy/branch/blackhole-improvement/pypy/jit/metainterp/warmspot.py
Log:
Start integration: kill metainterp/codewriter.py and move blackhole.py
into metainterp/.  Almost all tests fail so far.


Modified: pypy/branch/blackhole-improvement/pypy/jit/codewriter/test/test_codewriter.py
==============================================================================
--- pypy/branch/blackhole-improvement/pypy/jit/codewriter/test/test_codewriter.py	(original)
+++ pypy/branch/blackhole-improvement/pypy/jit/codewriter/test/test_codewriter.py	Thu Apr 22 11:08:08 2010
@@ -1,5 +1,4 @@
 from pypy.jit.codewriter.codewriter import CodeWriter
-from pypy.jit.codewriter.blackhole import BlackholeInterpreter
 
 
 def test_loop():
@@ -22,6 +21,7 @@
                                   'int_return/i': 4}
 
 def test_integration():
+    from pypy.jit.metainterp.blackhole import BlackholeInterpreter
     def f(a, b):
         while a > 2:
             b += a

Modified: pypy/branch/blackhole-improvement/pypy/jit/metainterp/pyjitpl.py
==============================================================================
--- pypy/branch/blackhole-improvement/pypy/jit/metainterp/pyjitpl.py	(original)
+++ pypy/branch/blackhole-improvement/pypy/jit/metainterp/pyjitpl.py	Thu Apr 22 11:08:08 2010
@@ -8,7 +8,7 @@
 from pypy.jit.metainterp import history, compile, resume
 from pypy.jit.metainterp.history import Const, ConstInt, Box
 from pypy.jit.metainterp.resoperation import rop
-from pypy.jit.metainterp import codewriter, executor
+from pypy.jit.metainterp import executor
 from pypy.jit.metainterp.logger import Logger
 from pypy.jit.metainterp.jitprof import BLACKHOLED_OPS, EmptyProfiler
 from pypy.jit.metainterp.jitprof import GUARDS, RECORDED_OPS, ABORT_ESCAPE
@@ -183,23 +183,6 @@
 
     # ------------------------------
 
-    for _n in range(codewriter.MAX_MAKE_NEW_VARS):
-        _decl = ', '.join(["'box'" for _i in range(_n)])
-        _allargs = ', '.join(["box%d" % _i for _i in range(_n)])
-        exec py.code.Source("""
-            @arguments(%s)
-            def opimpl_make_new_vars_%d(self, %s):
-                if not we_are_translated():
-                    check_args(%s)
-                self.env = [%s]
-        """ % (_decl, _n, _allargs, _allargs, _allargs)).compile()
-
-    @arguments("varargs")
-    def opimpl_make_new_vars(self, newenv):
-        if not we_are_translated():
-            check_args(*newenv)
-        self.env = newenv
-
     for _opimpl in ['int_add', 'int_sub', 'int_mul', 'int_floordiv', 'int_mod',
                     'int_lt', 'int_le', 'int_eq',
                     'int_ne', 'int_gt', 'int_ge',

Modified: pypy/branch/blackhole-improvement/pypy/jit/metainterp/test/test_basic.py
==============================================================================
--- pypy/branch/blackhole-improvement/pypy/jit/metainterp/test/test_basic.py	(original)
+++ pypy/branch/blackhole-improvement/pypy/jit/metainterp/test/test_basic.py	Thu Apr 22 11:08:08 2010
@@ -4,7 +4,7 @@
 from pypy.rlib.jit import OPTIMIZER_FULL, OPTIMIZER_SIMPLE, loop_invariant
 from pypy.jit.metainterp.warmspot import ll_meta_interp, get_stats
 from pypy.jit.backend.llgraph import runner
-from pypy.jit.metainterp import codewriter, pyjitpl, history
+from pypy.jit.metainterp import pyjitpl, history
 from pypy.jit.metainterp.policy import JitPolicy, StopAtXPolicy
 from pypy.jit.codewriter import support
 from pypy import conftest

Modified: pypy/branch/blackhole-improvement/pypy/jit/metainterp/test/test_blackhole.py
==============================================================================
--- pypy/branch/blackhole-improvement/pypy/jit/metainterp/test/test_blackhole.py	(original)
+++ pypy/branch/blackhole-improvement/pypy/jit/metainterp/test/test_blackhole.py	Thu Apr 22 11:08:08 2010
@@ -1,8 +1,67 @@
 from pypy.rlib.jit import JitDriver
 from pypy.jit.metainterp.test.test_basic import LLJitMixin, OOJitMixin
-from pypy.jit.metainterp import pyjitpl
+from pypy.jit.metainterp.blackhole import BlackholeInterpreter
+from pypy.jit.codewriter.assembler import JitCode
 
 
+def test_simple():
+    jitcode = JitCode("test")
+    jitcode.setup("\x00\x00\x01\x02"
+                  "\x01\x02",
+                  [])
+    blackholeinterp = BlackholeInterpreter()
+    blackholeinterp.setup_insns({'int_add/iii': 0,
+                                 'int_return/i': 1})
+    blackholeinterp.setarg_i(0, 40)
+    blackholeinterp.setarg_i(1, 2)
+    blackholeinterp.run(jitcode, 0)
+    assert blackholeinterp.result_i == 42
+
+def test_simple_const():
+    jitcode = JitCode("test")
+    jitcode.setup("\x00\x30\x01\x02"
+                  "\x01\x02",
+                  [])
+    blackholeinterp = BlackholeInterpreter()
+    blackholeinterp.setup_insns({'int_sub/cii': 0,
+                                 'int_return/i': 1})
+    blackholeinterp.setarg_i(1, 6)
+    blackholeinterp.run(jitcode, 0)
+    assert blackholeinterp.result_i == 42
+
+def test_simple_bigconst():
+    jitcode = JitCode("test")
+    jitcode.setup("\x00\xFD\x01\x02"
+                  "\x01\x02",
+                  [666, 666, 10042, 666])
+    blackholeinterp = BlackholeInterpreter()
+    blackholeinterp.setup_insns({'int_sub/iii': 0,
+                                 'int_return/i': 1})
+    blackholeinterp.setarg_i(1, 10000)
+    blackholeinterp.run(jitcode, 0)
+    assert blackholeinterp.result_i == 42
+
+def test_simple_loop():
+    jitcode = JitCode("test")
+    jitcode.setup("\x00\x10\x00\x16\x02"  # L1: goto_if_not_int_gt L2, %i0, 2
+                  "\x01\x17\x16\x17"      #     int_add %i1, %i0, %i1
+                  "\x02\x16\x01\x16"      #     int_sub %i0, $1, %i0
+                  "\x03\x00\x00"          #     goto L1
+                  "\x04\x17",             # L2: int_return %i1
+                  [])
+    blackholeinterp = BlackholeInterpreter()
+    blackholeinterp.setup_insns({'goto_if_not_int_gt/Lic': 0,
+                                 'int_add/iii': 1,
+                                 'int_sub/ici': 2,
+                                 'goto/L': 3,
+                                 'int_return/i': 4})
+    blackholeinterp.setarg_i(0x16, 6)    # %i0
+    blackholeinterp.setarg_i(0x17, 100)  # %i1
+    blackholeinterp.run(jitcode, 0)
+    assert blackholeinterp.result_i == 100+6+5+4+3
+
+# ____________________________________________________________
+
 class BlackholeTests(object):
 
     def meta_interp(self, *args):
@@ -10,6 +69,7 @@
             previnit(frame, metainterp, jitcode, greenkey)
             self.seen_frames.append(jitcode.name)
         #
+        from pypy.jit.metainterp import pyjitpl
         previnit = pyjitpl.MIFrame.__init__.im_func
         try:
             self.seen_frames = []

Modified: pypy/branch/blackhole-improvement/pypy/jit/metainterp/warmspot.py
==============================================================================
--- pypy/branch/blackhole-improvement/pypy/jit/metainterp/warmspot.py	(original)
+++ pypy/branch/blackhole-improvement/pypy/jit/metainterp/warmspot.py	Thu Apr 22 11:08:08 2010
@@ -16,7 +16,6 @@
 from pypy.translator.simplify import get_funcobj, get_functype
 from pypy.translator.unsimplify import call_final_function
 
-from pypy.jit.metainterp import codewriter
 from pypy.jit.metainterp import history, pyjitpl, gc
 from pypy.jit.metainterp.pyjitpl import MetaInterpStaticData, MetaInterp
 from pypy.jit.metainterp.policy import JitPolicy



More information about the Pypy-commit mailing list