[pypy-commit] pypy resume-refactor: (fijal, rguillebert, armin lurking) finish porting test_runner
fijal
noreply at buildbot.pypy.org
Sun Jan 12 14:47:10 CET 2014
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: resume-refactor
Changeset: r68613:bd6abaee785f
Date: 2014-01-12 14:46 +0100
http://bitbucket.org/pypy/pypy/changeset/bd6abaee785f/
Log: (fijal, rguillebert, armin lurking) finish porting test_runner
diff --git a/rpython/jit/backend/x86/test/test_runner.py b/rpython/jit/backend/x86/test/test_runner.py
--- a/rpython/jit/backend/x86/test/test_runner.py
+++ b/rpython/jit/backend/x86/test/test_runner.py
@@ -9,9 +9,11 @@
from rpython.jit.backend.x86.arch import WORD
from rpython.jit.backend.x86.rx86 import fits_in_32bits
from rpython.jit.backend.llsupport import symbolic
+from rpython.jit.codewriter.jitcode import JitCode
from rpython.jit.metainterp.resoperation import rop
from rpython.jit.metainterp.executor import execute
from rpython.jit.backend.test.runner_test import LLtypeBackendTest
+from rpython.jit.metainterp.test.test_resume2 import rebuild_locs_from_resumedata
from rpython.jit.tool.oparser import parse
import ctypes
@@ -266,6 +268,8 @@
p = lltype.cast_opaque_ptr(llmemory.GCREF,
lltype.malloc(lltype.GcStruct('x')))
nullptr = lltype.nullptr(llmemory.GCREF.TO)
+ jitcode = JitCode('name')
+ jitcode.setup(num_regs_i=1, num_regs_r=0, num_regs_f=0)
f = BoxInt()
for op in allops:
for guard in guards:
@@ -278,18 +282,28 @@
for b in (bp, n):
i1 = BoxInt(1)
ops = [
+ ResOperation(rop.ENTER_FRAME, [ConstInt(-1)], None,
+ descr=jitcode),
ResOperation(rop.SAME_AS, [ConstInt(1)], i1),
ResOperation(op, [b], f),
+ ResOperation(rop.RESUME_PUT, [i1, ConstInt(0),
+ ConstInt(0)],
+ None),
ResOperation(guard, [f], None,
- descr=BasicFailDescr()),
+ descr=BasicFailDescr(1)),
ResOperation(rop.FINISH, [ConstInt(0)], None,
- descr=BasicFinalDescr()),
+ descr=BasicFinalDescr(0)),
]
- ops[-2].setfailargs([i1])
looptoken = JitCellToken()
self.cpu.compile_loop(None, [b], ops, looptoken)
deadframe = self.cpu.execute_token(looptoken, b.value)
- result = self.cpu.get_int_value(deadframe, 0)
+ descr = self.cpu.get_latest_descr(deadframe)
+ if isinstance(descr, BasicFinalDescr):
+ pos = 0
+ else:
+ locs = rebuild_locs_from_resumedata(descr)
+ pos = locs[0][0]
+ result = self.cpu.get_int_value(deadframe, pos)
if guard == rop.GUARD_FALSE:
assert result == execute(self.cpu, None,
op, None, b).value
@@ -317,26 +331,38 @@
guards = [rop.GUARD_FALSE, rop.GUARD_TRUE]
all = [rop.INT_EQ, rop.INT_NE, rop.INT_LE, rop.INT_LT, rop.INT_GT,
rop.INT_GE, rop.UINT_GT, rop.UINT_LT, rop.UINT_LE, rop.UINT_GE]
+ jitcode = JitCode('name')
+ jitcode.setup(num_regs_i=1, num_regs_r=0, num_regs_f=0)
for a, b in boxes:
for guard in guards:
for op in all:
res = BoxInt()
i1 = BoxInt(1)
ops = [
+ ResOperation(rop.ENTER_FRAME, [ConstInt(-1)],
+ None, descr=jitcode),
ResOperation(rop.SAME_AS, [ConstInt(1)], i1),
ResOperation(op, [a, b], res),
+ ResOperation(rop.RESUME_PUT, [i1, ConstInt(0),
+ ConstInt(0)], None),
ResOperation(guard, [res], None,
- descr=BasicFailDescr()),
+ descr=BasicFailDescr(1)),
ResOperation(rop.FINISH, [ConstInt(0)], None,
- descr=BasicFinalDescr()),
+ descr=BasicFinalDescr(0)),
]
- ops[-2].setfailargs([i1])
inputargs = [i for i in (a, b) if isinstance(i, Box)]
looptoken = JitCellToken()
self.cpu.compile_loop(None, inputargs, ops, looptoken)
inputvalues = [box.value for box in inputargs]
deadframe = self.cpu.execute_token(looptoken, *inputvalues)
- result = self.cpu.get_int_value(deadframe, 0)
+
+ descr = self.cpu.get_latest_descr(deadframe)
+ if isinstance(descr, BasicFinalDescr):
+ pos = 0
+ else:
+ locs = rebuild_locs_from_resumedata(descr)
+ pos = locs[0][0]
+ result = self.cpu.get_int_value(deadframe, pos)
expected = execute(self.cpu, None, op, None, a, b).value
if guard == rop.GUARD_FALSE:
assert result == expected
@@ -535,12 +561,12 @@
debug_merge_point('xyz', 0, 0)
i1 = int_add(i0, 1)
i2 = int_ge(i1, 10)
- guard_false(i2) []
+ guard_false(i2)
label(i1, descr=targettoken)
debug_merge_point('xyz', 0, 0)
i11 = int_add(i1, 1)
i12 = int_ge(i11, 10)
- guard_false(i12) []
+ guard_false(i12)
jump(i11, descr=targettoken)
"""
ops = parse(loop, namespace={'targettoken': targettoken,
More information about the pypy-commit
mailing list