Author: fijal Branch: jit-leaner-frontend Changeset: r83279:325452ed8546 Date: 2016-03-22 22:16 +0200 http://bitbucket.org/pypy/pypy/changeset/325452ed8546/
Log: fix some part of test_resume diff --git a/rpython/jit/metainterp/test/test_resume.py b/rpython/jit/metainterp/test/test_resume.py --- a/rpython/jit/metainterp/test/test_resume.py +++ b/rpython/jit/metainterp/test/test_resume.py @@ -808,22 +808,41 @@ assert tagbits == TAGCONST assert memo.consts[index - TAG_CONST_OFFSET] is const +class Frame(object): + def __init__(self, boxes): + self.boxes = boxes + + def get_list_of_active_boxes(self, flag, new_array, encode): + a = new_array(len(self.boxes)) + for i, box in enumerate(self.boxes): + a[i] = encode(box) + return a + def test_ResumeDataLoopMemo_number(): b1, b2, b3, b4, b5 = [IntFrontendOp(0), IntFrontendOp(1), IntFrontendOp(2), RefFrontendOp(3), RefFrontendOp(4)] c1, c2, c3, c4 = [ConstInt(1), ConstInt(2), ConstInt(3), ConstInt(4)] env = [b1, c1, b2, b1, c2] - snap = Snapshot(0, env) + t = Trace([b1, b2, b3, b4, b5]) + snap = t.create_snapshot(FakeJitCode("jitcode", 0), 0, Frame(env), False) env1 = [c3, b3, b1, c1] - snap1 = TopSnapshot(snap, env1, []) + t.append(0) # descr index + snap1 = t.create_top_snapshot(FakeJitCode("jitcode", 0), 2, Frame(env1), False, + [], []) + snap1.prev = snap + env2 = [c3, b3, b1, c3] - snap2 = TopSnapshot(snap, env2, []) + env3 = [c3, b3, b1, c3] + env4 = [c3, b4, b1, c3] + env5 = [b1, b4, b5] + metainterp_sd = FakeMetaInterpStaticData() - memo = ResumeDataLoopMemo(FakeMetaInterpStaticData()) - frameinfo = FrameInfo(None, FakeJitCode("jitcode", 0), 0) + memo = ResumeDataLoopMemo(metainterp_sd) - numb, liveboxes, v = memo.number(FakeOptimizer(), snap1, frameinfo) + iter = t.get_iter(metainterp_sd) + b1, b2, b3, b4, b5 = iter.inputargs + numb, liveboxes, v = memo.number(FakeOptimizer(), 0, iter) assert v == 0 assert liveboxes == {b1: tag(0, TAGBOX), b2: tag(1, TAGBOX), @@ -831,20 +850,26 @@ base = [0, 0, tag(0, TAGBOX), tag(1, TAGINT), tag(1, TAGBOX), tag(0, TAGBOX), tag(2, TAGINT)] - assert unpack_numbering(numb) == [0, 2, tag(3, TAGINT), tag(2, TAGBOX), - tag(0, TAGBOX), tag(1, TAGINT)] + base + assert unpack_numbering(numb) == [0, 0] + base + [0, 2, tag(3, TAGINT), tag(2, TAGBOX), + tag(0, TAGBOX), tag(1, TAGINT)] + t.append(0) + snap2 = t.create_top_snapshot(FakeJitCode("jitcode", 0), 2, Frame(env2), + False, [], []) + snap2.prev = snap - numb2, liveboxes2, v = memo.number(FakeOptimizer(), snap2, frameinfo) + numb2, liveboxes2, v = memo.number(FakeOptimizer(), 1, iter) assert v == 0 assert liveboxes2 == {b1: tag(0, TAGBOX), b2: tag(1, TAGBOX), b3: tag(2, TAGBOX)} assert liveboxes2 is not liveboxes - assert unpack_numbering(numb2) == [0, 2, tag(3, TAGINT), tag(2, TAGBOX), - tag(0, TAGBOX), tag(3, TAGINT)] + base + assert unpack_numbering(numb2) == [0, 0] + base + [0, 2, tag(3, TAGINT), tag(2, TAGBOX), + tag(0, TAGBOX), tag(3, TAGINT)] - env3 = [c3, b3, b1, c3] - snap3 = TopSnapshot(snap, env3, []) + t.append(0) + snap3 = t.create_top_snapshot(FakeJitCode("jitcode", 0), 2, Frame([]), + False, [], env3) + snap3.prev = snap class FakeVirtualInfo(info.AbstractInfo): def __init__(self, virt): @@ -855,45 +880,55 @@ # renamed b3.set_forwarded(c4) - numb3, liveboxes3, v = memo.number(FakeOptimizer(), snap3, frameinfo) + numb3, liveboxes3, v = memo.number(FakeOptimizer(), 2, iter) assert v == 0 assert liveboxes3 == {b1: tag(0, TAGBOX), b2: tag(1, TAGBOX)} - assert unpack_numbering(numb3) == [0, 2, tag(3, TAGINT), tag(4, TAGINT), - tag(0, TAGBOX), tag(3, TAGINT)] + base + assert unpack_numbering(numb3) == ([0, 2, tag(3, TAGINT), tag(4, TAGINT), + tag(0, TAGBOX), tag(3, TAGINT)] + + base + [0, 2]) # virtual - env4 = [c3, b4, b1, c3] - snap4 = TopSnapshot(snap, env4, []) + t.append(0) + snap4 = t.create_top_snapshot(FakeJitCode("jitcode", 0), 2, Frame([]), + False, [], env4) + snap4.prev = snap b4.set_forwarded(FakeVirtualInfo(True)) - numb4, liveboxes4, v = memo.number(FakeOptimizer(), snap4, frameinfo) + numb4, liveboxes4, v = memo.number(FakeOptimizer(), 3, iter) assert v == 1 assert liveboxes4 == {b1: tag(0, TAGBOX), b2: tag(1, TAGBOX), b4: tag(0, TAGVIRTUAL)} assert unpack_numbering(numb4) == [0, 2, tag(3, TAGINT), tag(0, TAGVIRTUAL), - tag(0, TAGBOX), tag(3, TAGINT)] + base + tag(0, TAGBOX), tag(3, TAGINT)] + base + [0, 2] - env5 = [b1, b4, b5] - snap5 = TopSnapshot(snap4, [], env5) + t.append(0) + snap4 = t.create_snapshot(FakeJitCode("jitcode", 2), 1, Frame(env4), False) + t.append(0) + snap4.prev = snap + snap5 = t.create_top_snapshot(FakeJitCode("jitcode", 0), 0, Frame([]), False, + env5, []) + snap5.prev = snap4 b4.set_forwarded(FakeVirtualInfo(True)) b5.set_forwarded(FakeVirtualInfo(True)) - frameinfo = FrameInfo(frameinfo, FakeJitCode("foo", 2), 1) - numb5, liveboxes5, v = memo.number(FakeOptimizer(), snap5, frameinfo) + numb5, liveboxes5, v = memo.number(FakeOptimizer(), 4, iter) assert v == 2 assert liveboxes5 == {b1: tag(0, TAGBOX), b2: tag(1, TAGBOX), b4: tag(0, TAGVIRTUAL), b5: tag(1, TAGVIRTUAL)} assert unpack_numbering(numb5) == [ 3, tag(0, TAGBOX), tag(0, TAGVIRTUAL), tag(1, TAGVIRTUAL), - 0, + 0] + base + [ 2, 1, tag(3, TAGINT), tag(0, TAGVIRTUAL), tag(0, TAGBOX), tag(3, TAGINT) - ] + base + ] + [0, 0] @given(boxlists) def test_ResumeDataLoopMemo_random(lst): + t = Trace() + t.append(0) + s = t.create_top_snapshot(FakeJitCode("", 0), 1, Frame([]), lst, []) s = TopSnapshot(None, [], lst) frameinfo = FrameInfo(None, FakeJitCode("foo", 0), 0) memo = ResumeDataLoopMemo(FakeMetaInterpStaticData()) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit