[pypy-commit] pypy resume-refactor: (fijal, rguillebert) hack at scaffolding until we pass the first test
fijal
noreply at buildbot.pypy.org
Sun Jan 12 16:10:17 CET 2014
Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: resume-refactor
Changeset: r68619:df624ee695ee
Date: 2014-01-12 16:09 +0100
http://bitbucket.org/pypy/pypy/changeset/df624ee695ee/
Log: (fijal, rguillebert) hack at scaffolding until we pass the first
test
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_optimizebasic.py
@@ -168,14 +168,20 @@
def test_simple(self):
ops = """
[i]
+ enter_frame(-1, descr=jitcode)
i0 = int_sub(i, 1)
- guard_value(i0, 0) [i0]
+ resume_put(i0, 0, 0)
+ guard_value(i0, 0)
+ leave_frame()
jump(i)
"""
expected = """
[i]
+ enter_frame(-1, descr=jitcode)
i0 = int_sub(i, 1)
- guard_value(i0, 0) [i0]
+ resume_put(i0, 0, 0)
+ guard_value(i0, 0)
+ leave_frame()
jump(1)
"""
self.optimize_loop(ops, expected)
diff --git a/rpython/jit/metainterp/optimizeopt/test/test_util.py b/rpython/jit/metainterp/optimizeopt/test/test_util.py
--- a/rpython/jit/metainterp/optimizeopt/test/test_util.py
+++ b/rpython/jit/metainterp/optimizeopt/test/test_util.py
@@ -19,6 +19,7 @@
from rpython.config.translationoption import get_combined_translation_config
from rpython.jit.metainterp.resoperation import rop, opname, ResOperation
from rpython.jit.metainterp.optimizeopt.unroll import Inliner
+from rpython.jit.codewriter.jitcode import JitCode
def test_sort_descrs():
class PseudoDescr(AbstractDescr):
@@ -50,26 +51,6 @@
py.test.raises(AssertionError,
"equaloplists(loop1.operations, loop3.operations)")
-def test_equaloplists_fail_args():
- ops = """
- [i0]
- i1 = int_add(i0, 1)
- i2 = int_add(i1, 1)
- guard_true(i1) [i2, i1]
- jump(i1)
- """
- namespace = {}
- loop1 = pure_parse(ops, namespace=namespace)
- loop2 = pure_parse(ops.replace("[i2, i1]", "[i1, i2]"),
- namespace=namespace)
- py.test.raises(AssertionError,
- "equaloplists(loop1.operations, loop2.operations)")
- assert equaloplists(loop1.operations, loop2.operations,
- strict_fail_args=False)
- loop3 = pure_parse(ops.replace("[i2, i1]", "[i2, i0]"),
- namespace=namespace)
- py.test.raises(AssertionError,
- "equaloplists(loop1.operations, loop3.operations)")
# ____________________________________________________________
@@ -278,6 +259,9 @@
register_known_gctype(cpu, intobj_immut_vtable, INTOBJ_IMMUT)
register_known_gctype(cpu, ptrobj_immut_vtable, PTROBJ_IMMUT)
+ jitcode = JitCode('name')
+ jitcode.setup(num_regs_i=2, num_regs_r=0, num_regs_f=0)
+
namespace = locals()
# ____________________________________________________________
@@ -325,21 +309,20 @@
_kind2count = {history.INT: 1, history.REF: 2, history.FLOAT: 3}
return sorted(boxes, key=lambda box: _kind2count[box.type])
+fail_descr = history.BasicFailDescr(1)
+final_descr = history.BasicFinalDescr(2)
+
+def invent_fail_descr(model, opnum):
+ if opnum == rop.FINISH:
+ return final_descr
+ return fail_descr
+
class BaseTest(object):
def parse(self, s, boxkinds=None):
return parse(s, self.cpu, self.namespace,
type_system=self.type_system,
- boxkinds=boxkinds,
- invent_fail_descr=self.invent_fail_descr)
-
- def invent_fail_descr(self, model, opnum, fail_args):
- if fail_args is None:
- return None
- descr = Storage()
- descr.rd_frame_info_list = resume.FrameInfo(None, "code", 11)
- descr.rd_snapshot = resume.Snapshot(None, _sortboxes(fail_args))
- return descr
+ boxkinds=boxkinds, invent_fail_descr=invent_fail_descr)
def assert_equal(self, optimized, expected, text_right=None):
from rpython.jit.metainterp.optimizeopt.util import equaloplists
@@ -349,7 +332,7 @@
assert box1.__class__ == box2.__class__
remap[box2] = box1
assert equaloplists(optimized.operations,
- expected.operations, False, remap, text_right)
+ expected.operations, remap, text_right)
def _do_optimize_loop(self, loop, call_pure_results):
from rpython.jit.metainterp.optimizeopt import optimize_trace
More information about the pypy-commit
mailing list