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)
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
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)