Author: Antonio Cuni <anto.c...@gmail.com> Branch: Changeset: r45142:589970b79153 Date: 2011-06-27 17:39 +0200 http://bitbucket.org/pypy/pypy/changeset/589970b79153/
Log: merge heads diff --git a/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py b/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py --- a/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py +++ b/pypy/jit/metainterp/optimizeopt/test/test_optimizebasic.py @@ -121,6 +121,41 @@ print '\n'.join([str(o) for o in loop.operations]) self.assert_equal(loop, expected) + def setup_method(self, meth=None): + class FailDescr(compile.ResumeGuardDescr): + oparse = None + def _oparser_uses_descr_of_guard(self, oparse, fail_args): + # typically called 3 times: once when parsing 'ops', + # once when parsing 'preamble', once when parsing 'expected'. + self.oparse = oparse + self.rd_frame_info_list, self.rd_snapshot = snapshot(fail_args) + def _clone_if_mutable(self): + assert self is fdescr + return fdescr2 + def __repr__(self): + if self is fdescr: + return 'fdescr' + if self is fdescr2: + return 'fdescr2' + return compile.ResumeGuardDescr.__repr__(self) + # + def snapshot(fail_args, got=[]): + if not got: # only the first time, i.e. when parsing 'ops' + rd_frame_info_list = resume.FrameInfo(None, "code", 11) + rd_snapshot = resume.Snapshot(None, fail_args) + got.append(rd_frame_info_list) + got.append(rd_snapshot) + return got + # + fdescr = instantiate(FailDescr) + self.namespace['fdescr'] = fdescr + fdescr2 = instantiate(FailDescr) + self.namespace['fdescr2'] = fdescr2 + + def teardown_method(self, meth): + self.namespace.pop('fdescr', None) + self.namespace.pop('fdescr2', None) + class BaseTestOptimizeBasic(BaseTestBasic): @@ -1875,7 +1910,6 @@ self.optimize_loop(ops, expected) def test_merge_guard_nonnull_guard_class(self): - self.make_fail_descr() ops = """ [p1, i0, i1, i2, p2] guard_nonnull(p1, descr=fdescr) [i0] @@ -1893,7 +1927,6 @@ self.check_expanded_fail_descr("i0", rop.GUARD_NONNULL_CLASS) def test_merge_guard_nonnull_guard_value(self): - self.make_fail_descr() ops = """ [p1, i0, i1, i2, p2] guard_nonnull(p1, descr=fdescr) [i0] @@ -1911,7 +1944,6 @@ self.check_expanded_fail_descr("i0", rop.GUARD_VALUE) def test_merge_guard_nonnull_guard_class_guard_value(self): - self.make_fail_descr() ops = """ [p1, i0, i1, i2, p2] guard_nonnull(p1, descr=fdescr) [i0] @@ -2204,23 +2236,6 @@ # ---------- - def make_fail_descr(self): - class FailDescr(compile.ResumeGuardDescr): - oparse = None - def _oparser_uses_descr_of_guard(self, oparse, fail_args): - # typically called twice, before and after optimization - if self.oparse is None: - fdescr.rd_frame_info_list = resume.FrameInfo(None, - "code", 11) - fdescr.rd_snapshot = resume.Snapshot(None, fail_args) - self.oparse = oparse - # - fdescr = instantiate(FailDescr) - self.namespace['fdescr'] = fdescr - - def teardown_method(self, meth): - self.namespace.pop('fdescr', None) - def _verify_fail_args(self, boxes, oparse, text): import re r = re.compile(r"\bwhere\s+(\w+)\s+is a\s+(\w+)") @@ -2329,7 +2344,6 @@ self._verify_fail_args(boxes, fdescr.oparse, expectedtext) def test_expand_fail_1(self): - self.make_fail_descr() ops = """ [i1, i3] # first rename i3 into i4 @@ -2350,7 +2364,6 @@ self.check_expanded_fail_descr('15, i3', rop.GUARD_TRUE) def test_expand_fail_2(self): - self.make_fail_descr() ops = """ [i1, i2] p1 = new_with_vtable(ConstClass(node_vtable)) @@ -2370,7 +2383,6 @@ ''', rop.GUARD_TRUE) def test_expand_fail_3(self): - self.make_fail_descr() ops = """ [i1, i2, i3, p3] p1 = new_with_vtable(ConstClass(node_vtable)) @@ -2396,7 +2408,7 @@ def test_expand_fail_4(self): for arg in ['p1', 'i2,p1', 'p1,p2', 'p2,p1', 'i2,p1,p2', 'i2,p2,p1']: - self.make_fail_descr() + self.setup_method() # humpf ops = """ [i1, i2, i3] p1 = new_with_vtable(ConstClass(node_vtable)) @@ -2421,7 +2433,6 @@ rop.GUARD_TRUE) def test_expand_fail_5(self): - self.make_fail_descr() ops = """ [i1, i2, i3, i4] p1 = new_with_vtable(ConstClass(node_vtable)) @@ -2445,7 +2456,6 @@ ''', rop.GUARD_TRUE) def test_expand_fail_6(self): - self.make_fail_descr() ops = """ [p0, i0, i1] guard_true(i0, descr=fdescr) [p0] @@ -2466,7 +2476,6 @@ ''', rop.GUARD_TRUE) def test_expand_fail_varray(self): - self.make_fail_descr() ops = """ [i1] p1 = new_array(3, descr=arraydescr) @@ -2487,7 +2496,6 @@ ''', rop.GUARD_TRUE) def test_expand_fail_vstruct(self): - self.make_fail_descr() ops = """ [i1, p1] p2 = new(descr=ssize) @@ -2509,7 +2517,6 @@ ''', rop.GUARD_TRUE) def test_expand_fail_v_all_1(self): - self.make_fail_descr() ops = """ [i1, p1a, i2] p6s = getarrayitem_gc(p1a, 0, descr=arraydescr2) @@ -2551,7 +2558,6 @@ ''', rop.GUARD_TRUE) def test_expand_fail_lazy_setfield_1(self): - self.make_fail_descr() ops = """ [p1, i2, i3] p2 = new_with_vtable(ConstClass(node_vtable)) @@ -2577,7 +2583,6 @@ ''', rop.GUARD_TRUE) def test_expand_fail_lazy_setfield_2(self): - self.make_fail_descr() ops = """ [i2, i3] p2 = new_with_vtable(ConstClass(node_vtable)) @@ -2601,9 +2606,6 @@ where p2 is a node_vtable, valuedescr=i2 ''', rop.GUARD_TRUE) - -class TestLLtype(BaseTestOptimizeBasic, LLtypeMixin): - def test_residual_call_does_not_invalidate_caches(self): ops = """ [p1, p2] @@ -2895,7 +2897,6 @@ self.optimize_loop(ops, expected) def test_vref_virtual_2(self): - self.make_fail_descr() ops = """ [p0, i1] # @@ -2941,7 +2942,6 @@ ''', rop.GUARD_NOT_FORCED) def test_vref_virtual_and_lazy_setfield(self): - self.make_fail_descr() ops = """ [p0, i1] # @@ -2980,7 +2980,6 @@ ''', rop.GUARD_NO_EXCEPTION) def test_vref_virtual_after_finish(self): - self.make_fail_descr() ops = """ [i1] p1 = new_with_vtable(ConstClass(node_vtable)) @@ -3007,7 +3006,6 @@ self.optimize_loop(ops, expected) def test_vref_nonvirtual_and_lazy_setfield(self): - self.make_fail_descr() ops = """ [i1, p1] p2 = virtual_ref(p1, 23) @@ -4500,6 +4498,10 @@ self.optimize_loop(ops, expected) +class TestLLtype(BaseTestOptimizeBasic, LLtypeMixin): + pass + + ##class TestOOtype(BaseTestOptimizeBasic, OOtypeMixin): ## def test_instanceof(self): diff --git a/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py b/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py --- a/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py +++ b/pypy/jit/metainterp/optimizeopt/test/test_optimizeopt.py @@ -2742,8 +2742,6 @@ # ---------- -class TestLLtype(OptimizeOptTest, LLtypeMixin): - def test_residual_call_does_not_invalidate_caches(self): ops = """ [p1, p2] @@ -5899,3 +5897,6 @@ jump(i0, i1) """ self.optimize_loop(ops, expected) + +class TestLLtype(OptimizeOptTest, LLtypeMixin): + pass diff --git a/pypy/jit/tool/pypytrace-mode.el b/pypy/jit/tool/pypytrace-mode.el --- a/pypy/jit/tool/pypytrace-mode.el +++ b/pypy/jit/tool/pypytrace-mode.el @@ -32,7 +32,7 @@ ("<.*FieldDescr \\([^ ]*\\)" (1 'font-lock-variable-name-face)) ;; comment out debug_merge_point, but then highlight specific part of it ("^debug_merge_point.*" . font-lock-comment-face) - ("^\\(debug_merge_point\\).*code object\\(.*\\), file \\('.*'\\), \\(line .*\\)> \\(.*\\)" + ("^\\(debug_merge_point\\).*code object\\(.*\\). file \\('.*'\\). \\(line .*\\)> \\(.*\\)" (1 'compilation-warning t) (2 'escape-glyph t) (3 'font-lock-string-face t) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit