Ejemplo n.º 1
0
def test_split_logs_into_loops():
    parts = split_logs_into_loops(examplelog)
    assert len(parts) == 5
    assert "\n".join(parts) == examplelog.strip()
    for part, typ in zip(parts, [
            "Loop0", "Loop1", "bridge out of Guard5", "bridge out of Guard9",
            "bridge out of Guard12"
    ]):
        assert part.startswith("# %s" % typ)
Ejemplo n.º 2
0
def test_split_logs_into_loops():
    parts = split_logs_into_loops(examplelog)
    assert len(parts) == 5
    assert "\n".join(parts) == examplelog.strip()
    for part, typ in zip(parts,
            ["Loop0", "Loop1",
             "bridge out of Guard5",
             "bridge out of Guard9",
             "bridge out of Guard12"]):
        assert part.startswith("# %s" % typ)
Ejemplo n.º 3
0
def main(argv):
    parts = split_logs_into_loops(py.path.local(argv[0]).read())
    for oplist in parts:
        loop = parse(oplist, no_namespace=True)
        num_ops = 0
        num_dmp = 0
        num_guards = 0
        for op in loop.operations:
            if op.opnum == rop.DEBUG_MERGE_POINT:
                num_dmp += 1
            else:
                num_ops += 1
            if op.is_guard():
                num_guards += 1
        print "Loop, length: %d, opcodes: %d, guards: %d" % (num_ops, num_dmp, num_guards)
Ejemplo n.º 4
0
 def parse_loops(self, opslogfile):
     from pypy.jit.metainterp.test.oparser import parse, split_logs_into_loops
     assert opslogfile.check()
     logs = opslogfile.read()
     parts = split_logs_into_loops(logs)
     # skip entry bridges, they can contain random things
     self.loops = [parse(part, no_namespace=True) for part in parts
                       if "entry bridge" not in part]
     self.sliced_loops = [] # contains all bytecodes of all loops
     for loop in self.loops:
         for op in loop.operations:
             if op.getopname() == "debug_merge_point":
                 sliced_loop = BytecodeTrace()
                 sliced_loop.bytecode = op.args[0]._get_str().rsplit(" ", 1)[1]
                 self.sliced_loops.append(sliced_loop)
             else:
                 sliced_loop.append(op)
     self.check_0_op_bytecodes()
Ejemplo n.º 5
0
def test_parse_no_namespace():
    parts = split_logs_into_loops(examplelog)
    for part in parts:
        loop = parse(part, no_namespace=True)
Ejemplo n.º 6
0
def main(loopnum, loopfile):
    data = py.path.local(loopfile).read()
    loops = split_logs_into_loops(data)
    inp = loops[loopnum]
    loop = parse(inp, no_namespace=True)
    loop.show()
Ejemplo n.º 7
0
def test_parse_no_namespace():
    parts = split_logs_into_loops(examplelog)
    for part in parts:
        loop = parse(part, no_namespace=True)