Пример #1
0
def test_opcode_profiler():
    code = Code()
    opc = OpcodeFreq()
    i1 = Mov(code.r(4), code.r(3))
    i2 = Imm(code.r(4), 3)
    i3 = Mov(code.r(4), code.r(3))
    i4 = Mul(code.r(2), code.r(4), code.r(3))

    for i in [i1, i2, i3, i4]:
        opc.process(i)
    gt = {"mov": 2, "imm": 1, "mul": 1}
    assert compare_cnt_dict(gt, opc.freq)
Пример #2
0
def test_communication_profiler():
    code = Code()
    comm = Communication()
    i1 = Mov(code.r(4), code.r(3))
    tag_instr(i1, "communication overhead")
    i2 = Imm(code.r(4), 3)
    i3 = Mov(code.r(4), code.r(3))
    tag_instr(i3, "communication overhead")
    i4 = Mul(code.r(2), code.r(4), code.r(3))

    for i in [i1, i2, i3, i4]:
        comm.process(i)
    assert comm.nr_instr == 4
    assert comm.overhead == 2
Пример #3
0
def test_codesection_profiler():
    code = Code()
    csp = CodeSectionProfiler()

    i1 = Mov(code.r(4), code.r(3))
    tag_instr(i1, "blah")
    i2 = Mov(code.r(4), code.r(3))
    tag_instr(i2, "section:test")
    i3 = Mov(code.r(4), code.r(3))
    tag_instr(i3, "section:test")
    i4 = Mov(code.r(4), code.r(3))
    tag_instr(i4, "section:test2")

    for i in [i1, i2, i3, i4]:
        csp.process(i)

    gt = {"test": 2, "test2": 1}
    assert compare_cnt_dict(gt, csp.section_cnt)