opc += " " + tkns[1] exe_cnt = int(line[22:28].strip()) res[opc] += exe_cnt return res if __name__ == "__main__": ic1 = inst_cnt( "/local_disk/msherstennikov/build.test/run_pure/xsim_tests/4.5/x86_64/test1/xsim_bmark64_spec2k6.aarch64.433.milc.ref_O2_sys_top100_23/sim0/logs/ptune.out" ) ic2 = inst_cnt( "/local_disk/msherstennikov/build.test/run_inline/xsim_tests/4.5/x86_64/test1/xsim_bmark64_spec2k6.aarch64.433.milc.ref_O2_sys_top100_23/sim0/logs/ptune.out" ) res = [] for k, v in ic1.iteritems(): res.append([k, v, ic2[k], infra.percentage_drift(v, ic2[k])]) for v in sorted(res, key=lambda x: x[3], reverse=True): if "ld" not in v[0]: continue print "{:<32}{:>8}{:>8} {:+.2f}".format(*v) cnt = (sum(v for k, v in ic1.iteritems() if "ld" in k), sum(v for k, v in ic2.iteritems() if "ld" in k)) print "LDR: {:>12}{:>12} {:+.2f}".format(cnt[0], cnt[1], infra.percentage_drift(cnt[0], cnt[1])) cnt = (sum(v for k, v in ic1.iteritems() if "str" in k), sum(v for k, v in ic2.iteritems() if "str" in k)) print "STR: {:>12}{:>12} {:+.2f}".format(cnt[0], cnt[1], infra.percentage_drift(cnt[0], cnt[1])) cnt = (sum(v for k, v in ic1.iteritems() if "brn" in k), sum(v for k, v in ic2.iteritems() if "brn" in k)) print "BRN: {:>12}{:>12} {:+.2f}".format(cnt[0], cnt[1], infra.percentage_drift(cnt[0], cnt[1])) cnt = (sum(v for k, v in ic1.iteritems()), sum(v for k, v in ic2.iteritems())) print "TOTAL: {:>12}{:>12} {:+.2f}".format(cnt[0], cnt[1], infra.percentage_drift(cnt[0], cnt[1])) # parse_line('00000040481c a0210580 40107 vqs.move64 %v17, %q18[0]') # parse_line('00000040481c a0210548 40107 11 p.mem.am vs.ldr.z64.b %v0, M[%r1 +32]') # parse('/local_disk/msherstennikov/build.test/run_pure/xsim_tests/4.5/x86_64/test/xsim_bmark64_spec2k6.aarch64.433.milc.ref_O2_sys_top100_23/sim0/logs/ptune.out')
def diff_app(self, other): res = [] for k, v in self.app.iteritems(): other_v = other.app[k] res.append([k, v, other_v, infra.percentage_drift(v, other_v)]) return res
def diff_penalty(self, other): res = [] for t in self.penalty: other_t = next(p for p in other.penalty if p[0] == t[0]) res.append([t[0], t[1], other_t[1], infra.percentage_drift(t[1], other_t[1])]) return res
def diff_yaml(self, other): for key, value in sorted(self.yaml.iteritems(), key=lambda (k,v): k): value2 = other.yaml[key] print '{:<32}{:>20}{:>20} {:+.2f}'.format(key, value, value2, infra.percentage_drift(value, value2))