def search_done(self): sinfo = static_info.StaticInfo() sinfo.load(self.controller.knobs['sinfo_out']) prog = program.Program(sinfo) prog.load(self.controller.knobs['program_out']) search_info = search.SearchInfo(sinfo, program) search_info.load(self.controller.knobs['search_out']) return search_info.done()
def __display_test_history(output, options): sinfo = static_info.StaticInfo() sinfo.load(options.sinfo_in) iroot_db = iroot.iRootDB(sinfo) iroot_db.load(options.iroot_in) test_history = idiom_history.TestHistory(sinfo, iroot_db) test_history.load(options.test_history) test_history.display(output)
def __display_memo_summary(output, options): sinfo = static_info.StaticInfo() sinfo.load(options.sinfo_in) iroot_db = iroot.iRootDB(sinfo) iroot_db.load(options.iroot_in) memo_db = memo.Memo(sinfo, iroot_db) memo_db.load(options.memo_in) memo_db.display_summary(output)
def threshold_check(self): if testing.DeathTestCase.threshold_check(self): return True if self.mode == 'stable': sinfo = static_info.StaticInfo() sinfo.load(self.profiler.knobs['sinfo_out']) iroot_db = iroot.iRootDB(sinfo) iroot_db.load(self.profiler.knobs['iroot_out']) return False
def verify(profiler, testcase): sinfo = static_info.StaticInfo() sinfo.load(profiler.knobs['sinfo_out']) iroot_db = iroot.iRootDB(sinfo) iroot_db.load(profiler.knobs['iroot_out']) if len(iroot_db.iroot_map) >= 40: logging.msg('iroot_db size mismatch\n') return False return True
def verify(controller, testcase): sinfo = static_info.StaticInfo() sinfo.load(controller.knobs['sinfo_out']) prog = program.Program(sinfo) prog.load(controller.knobs['program_out']) search_info = search.SearchInfo(sinfo, prog) search_info.load(controller.knobs['search_out']) if search_info.num_runs() != 6: return False return True
def verify(profiler, testcase): sinfo = static_info.StaticInfo() sinfo.load(profiler.knobs['sinfo_out']) iroot_db = iroot.iRootDB(sinfo) iroot_db.load(profiler.knobs['iroot_out']) for r in iroot_db.iroot_map.itervalues(): if r.idiom() == 4: logging.msg('idiom4 iroot should not be predicted\n') return False return True
def __modify_memo_mark_unexposed_failed(options): if not os.path.exists(options.memo_in): return sinfo = static_info.StaticInfo() sinfo.load(options.sinfo_in) iroot_db = iroot.iRootDB(sinfo) iroot_db.load(options.iroot_in) memo_db = memo.Memo(sinfo, iroot_db) memo_db.load(options.memo_in) memo_db.mark_unexposed_failed() memo_db.save(options.memo_out) logging.msg('memo mark unexposed failed done!\n')
def verify(controller, testcase): sinfo = static_info.StaticInfo() sinfo.load(controller.knobs['sinfo_out']) prog = program.Program(sinfo) prog.load(controller.knobs['program_out']) search_info = search.SearchInfo(sinfo, prog) search_info.load(controller.knobs['search_out']) if search_info.num_nodes() != 15: return False if search_info.find_node(10).num_enabled() != 2: return False return True
def __modify_memo_refine_candidate(options): if not os.path.exists(options.memo_in): return sinfo = static_info.StaticInfo() sinfo.load(options.sinfo_in) iroot_db = iroot.iRootDB(sinfo) iroot_db.load(options.iroot_in) memo_db = memo.Memo(sinfo, iroot_db) memo_db.load(options.memo_in) memo_db.refine_candidate() memo_db.save(options.memo_out) logging.msg('memo refine candidate done!\n')
def __modify_memo_input_change(options): if not os.path.exists(options.memo_in): return sinfo = static_info.StaticInfo() sinfo.load(options.sinfo_in) iroot_db = iroot.iRootDB(sinfo) iroot_db.load(options.iroot_in) memo_db = memo.Memo(sinfo, iroot_db) memo_db.load(options.memo_in) memo_db.clear_predicted_set() memo_db.clear_candidate_map() memo_db.save(options.memo_out) logging.msg('memo input change done!\n')
def verify(profiler, testcase): sinfo = static_info.StaticInfo() sinfo.load(profiler.knobs['sinfo_out']) iroot_db = iroot.iRootDB(sinfo) iroot_db.load(profiler.knobs['iroot_out']) if len(iroot_db.iroot_map) != 2: logging.msg('iroot_db size mismatch\n') return False for r in iroot_db.iroot_map.itervalues(): if not iroot_is_expected(r): logging.msg('iroot mismatch\n') return False return True
def verify(controller, testcase): sinfo = static_info.StaticInfo() sinfo.load(controller.knobs['sinfo_out']) prog = program.Program(sinfo) prog.load(controller.knobs['program_out']) search_info = search.SearchInfo(sinfo, prog) search_info.load(controller.knobs['search_out']) if search_info.num_runs() != 19: return False por_files = os.listdir(controller.knobs['por_info_path']) if len(por_files) != 2: return False return True
def verify(profiler, testcase): sinfo = static_info.StaticInfo() sinfo.load(profiler.knobs['sinfo_out']) iroot_db = iroot.iRootDB(sinfo) iroot_db.load(profiler.knobs['iroot_out']) num_idiom4_iroots = 0 for r in iroot_db.iroot_map.itervalues(): if r.idiom() == 4: num_idiom4_iroots += 1 if num_idiom4_iroots != 7: logging.msg('num idiom4 iroots mismatch\n') return False for r in iroot_db.iroot_map.itervalues(): if not iroot_is_expected(r): logging.msg('iroot mismatch\n') return False return True
def threshold_check(self): if testing.DeathTestCase.threshold_check(self): return True if self.mode == 'stable': sinfo = static_info.StaticInfo() sinfo.load(self.profiler.knobs['sinfo_out']) race_db = race.RaceDB(sinfo) race_db.load(self.profiler.knobs['race_out']) if (race_db.num_static_races() != self.num_static_races or race_db.num_racy_insts() != self.num_racy_insts): self.stable_cnt = 0 else: self.stable_cnt += 1 if self.stable_cnt >= int(self.threshold): return True self.num_static_races = race_db.num_static_races() self.num_racy_insts = race_db.num_racy_insts() return False
def __display_racy_inst(output, options): sinfo = static_info.StaticInfo() sinfo.load(options.sinfo_in) race_db = race.RaceDB(sinfo) race_db.load(options.race_in) race_db.display_racy_inst(output)
def __display_log(output, options): sinfo = static_info.StaticInfo() sinfo.load(options.sinfo_in) trace = trace_log.TraceLog(sinfo) trace.display(output, options.trace_log_path)
def __display_sinst_db(output, options): sinfo = static_info.StaticInfo() sinfo.load(options.sinfo_in) sinst_db = sinst.SinstDB(sinfo) sinst_db.load(options.sinst_in) sinst_db.display(output)
def __display_inst_table(output, options): sinfo = static_info.StaticInfo() sinfo.load(options.sinfo_in) sinfo.display_inst_table(output)
def __display_iroot_db(output, options): sinfo = static_info.StaticInfo() sinfo.load(options.sinfo_in) iroot_db = iroot.iRootDB(sinfo) iroot_db.load(options.iroot_in) iroot_db.display(output)