Beispiel #1
0
def test_portal_trace_positions():
    py.test.skip("bleh, too direct test, rewrite or kill")
    class jitdriver_sd:
        index = 0

        class warmstate:
            @staticmethod
            def get_unique_id(*args):
                return 0

        class jitdriver:
            is_recursive = True

    jitcode = JitCode("f")
    jitcode.setup(None)
    portal = JitCode("portal")
    portal.jitdriver_sd = jitdriver_sd
    portal.setup(None)
    class FakeStaticData:
        cpu = None
        warmstate = None
        warmrunnerdesc = None
        mainjitcode = portal

    metainterp = pyjitpl.MetaInterp(FakeStaticData(), FakeStaticData())
    metainterp.framestack = []
    class FakeHistory:
        operations = []

        @staticmethod
        def record(*args):
            pass
    history = metainterp.history = FakeHistory()
    metainterp.newframe(portal, "green1")
    history.operations.append(1)
    metainterp.newframe(jitcode)
    history.operations.append(2)
    metainterp.newframe(portal, "green2")
    history.operations.append(3)
    metainterp.popframe()
    history.operations.append(4)
    metainterp.popframe()
    history.operations.append(5)
    metainterp.popframe()
    history.operations.append(6)
    assert metainterp.portal_trace_positions == [("green1", 0), ("green2", 2),
                                                 (None, 3), (None, 5)]
    assert metainterp.find_biggest_function() == "green1"

    metainterp.newframe(portal, "green3")
    history.operations.append(7)
    metainterp.newframe(jitcode)
    history.operations.append(8)
    assert metainterp.portal_trace_positions == [("green1", 0), ("green2", 2),
                                                 (None, 3), (None, 5), ("green3", 6)]
    assert metainterp.find_biggest_function() == "green1"

    history.operations.extend([9, 10, 11, 12])
    assert metainterp.find_biggest_function() == "green3"
def test_portal_trace_positions():
    jitcode = JitCode("f")
    jitcode.setup(None)
    portal = JitCode("portal")
    portal.setup(None)
    class FakeStaticData:
        cpu = None
        warmstate = None
        warmrunnerdesc = None
        mainjitcode = portal

    metainterp = pyjitpl.MetaInterp(FakeStaticData(), FakeStaticData())
    metainterp.framestack = []
    class FakeHistory:
        operations = []
    history = metainterp.history = FakeHistory()
    metainterp.newframe(portal, "green1")
    history.operations.append(1)
    metainterp.newframe(jitcode)
    history.operations.append(2)
    metainterp.newframe(portal, "green2")
    history.operations.append(3)
    metainterp.popframe()
    history.operations.append(4)
    metainterp.popframe()
    history.operations.append(5)
    metainterp.popframe()
    history.operations.append(6)
    assert metainterp.portal_trace_positions == [("green1", 0), ("green2", 2),
                                                 (None, 3), (None, 5)]
    assert metainterp.find_biggest_function() == "green1"

    metainterp.newframe(portal, "green3")
    history.operations.append(7)
    metainterp.newframe(jitcode)
    history.operations.append(8)
    assert metainterp.portal_trace_positions == [("green1", 0), ("green2", 2),
                                                 (None, 3), (None, 5), ("green3", 6)]
    assert metainterp.find_biggest_function() == "green1"

    history.operations.extend([9, 10, 11, 12])
    assert metainterp.find_biggest_function() == "green3"
Beispiel #3
0
def test_portal_trace_positions():
    jitcode = JitCode("f")
    jitcode.setup(None)
    portal = JitCode("portal")
    portal.setup(None)
    class FakeStaticData:
        cpu = None
        warmrunnerdesc = None
        mainjitcode = portal

    metainterp = pyjitpl.MetaInterp(FakeStaticData(), FakeStaticData())
    metainterp.framestack = []
    class FakeHistory:
        operations = []
    history = metainterp.history = FakeHistory()
    metainterp.newframe(portal, "green1")
    history.operations.append(1)
    metainterp.newframe(jitcode)
    history.operations.append(2)
    metainterp.newframe(portal, "green2")
    history.operations.append(3)
    metainterp.popframe()
    history.operations.append(4)
    metainterp.popframe()
    history.operations.append(5)
    metainterp.popframe()
    history.operations.append(6)
    assert metainterp.portal_trace_positions == [("green1", 0), ("green2", 2),
                                                 (None, 3), (None, 5)]
    assert metainterp.find_biggest_function() == "green1"

    metainterp.newframe(portal, "green3")
    history.operations.append(7)
    metainterp.newframe(jitcode)
    history.operations.append(8)
    assert metainterp.portal_trace_positions == [("green1", 0), ("green2", 2),
                                                 (None, 3), (None, 5), ("green3", 6)]
    assert metainterp.find_biggest_function() == "green1"

    history.operations.extend([9, 10, 11, 12])
    assert metainterp.find_biggest_function() == "green3"
Beispiel #4
0
def test_num_regs():
    j = JitCode("test")
    j.setup(num_regs_i=12, num_regs_r=34, num_regs_f=56)
    assert j.num_regs_i() == 12
    assert j.num_regs_r() == 34
    assert j.num_regs_f() == 56
    j.setup(num_regs_i=0, num_regs_r=0, num_regs_f=0)
    assert j.num_regs_i() == 0
    assert j.num_regs_r() == 0
    assert j.num_regs_f() == 0
    j.setup(num_regs_i=255, num_regs_r=255, num_regs_f=255)
    assert j.num_regs_i() == 255
    assert j.num_regs_r() == 255
    assert j.num_regs_f() == 255
Beispiel #5
0
def test_num_regs():
    j = JitCode("test")
    j.setup(num_regs_i=12, num_regs_r=34, num_regs_f=56)
    assert j.num_regs_i() == 12
    assert j.num_regs_r() == 34
    assert j.num_regs_f() == 56
    j.setup(num_regs_i=0, num_regs_r=0, num_regs_f=0)
    assert j.num_regs_i() == 0
    assert j.num_regs_r() == 0
    assert j.num_regs_f() == 0
    j.setup(num_regs_i=255, num_regs_r=255, num_regs_f=255)
    assert j.num_regs_i() == 255
    assert j.num_regs_r() == 255
    assert j.num_regs_f() == 255
Beispiel #6
0
def test_liveness():
    j = JitCode("test")
    j.setup(liveness={5: (" A", "b", "CD")})
    assert j.has_liveness_info(5)
    assert not j.has_liveness_info(4)
    assert j._live_vars(5) == "%i32 %i65 %r98 %f67 %f68"
Beispiel #7
0
def test_liveness():
    j = JitCode("test")
    j.setup(liveness={5: (" A", "b", "CD")})
    assert j.has_liveness_info(5)
    assert not j.has_liveness_info(4)
    assert j._live_vars(5) == "%i32 %i65 %r98 %f67 %f68"
Beispiel #8
0
def test_portal_trace_positions():
    py.test.skip("bleh, too direct test, rewrite or kill")

    class jitdriver_sd:
        index = 0

        class warmstate:
            @staticmethod
            def get_unique_id(*args):
                return 0

        class jitdriver:
            is_recursive = True

    jitcode = JitCode("f")
    jitcode.setup(None)
    portal = JitCode("portal")
    portal.jitdriver_sd = jitdriver_sd
    portal.setup(None)

    class FakeStaticData:
        cpu = None
        warmstate = None
        warmrunnerdesc = None
        mainjitcode = portal

    metainterp = pyjitpl.MetaInterp(FakeStaticData(), FakeStaticData())
    metainterp.framestack = []

    class FakeHistory:
        operations = []

        @staticmethod
        def record(*args):
            pass

    history = metainterp.history = FakeHistory()
    metainterp.newframe(portal, "green1")
    history.operations.append(1)
    metainterp.newframe(jitcode)
    history.operations.append(2)
    metainterp.newframe(portal, "green2")
    history.operations.append(3)
    metainterp.popframe()
    history.operations.append(4)
    metainterp.popframe()
    history.operations.append(5)
    metainterp.popframe()
    history.operations.append(6)
    assert metainterp.portal_trace_positions == [("green1", 0), ("green2", 2),
                                                 (None, 3), (None, 5)]
    assert metainterp.find_biggest_function() == "green1"

    metainterp.newframe(portal, "green3")
    history.operations.append(7)
    metainterp.newframe(jitcode)
    history.operations.append(8)
    assert metainterp.portal_trace_positions == [("green1", 0), ("green2", 2),
                                                 (None, 3), (None, 5),
                                                 ("green3", 6)]
    assert metainterp.find_biggest_function() == "green1"

    history.operations.extend([9, 10, 11, 12])
    assert metainterp.find_biggest_function() == "green3"