[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