• Home
  • Raw
  • Download

Lines Matching full:good

9 This script takes a good AFDO profile, a bad AFDO profile, and an external
10 script which deems particular AFDO profiles as GOOD/BAD/SKIP, and an output
17 - 0: the AFDO profile produced a good binary
181 def bisect_profiles(decider, good, bad, common_funcs, lo, hi): argument
182 """Recursive function which bisects good and bad profiles.
187 good: JSON-based good AFDO profile
190 'good' and 'bad'
197 such that including all of those from the bad profile makes the good
211 lo_mid_prof = good.copy() # covers bad from lo:mid
212 mid_hi_prof = good.copy() # covers bad from mid:hi
222 result = bisect_profiles(decider, good, bad, common_funcs, lo, mid)
226 result = bisect_profiles(decider, good, bad, common_funcs, mid, hi)
233 problem_range = range_search(decider, good, bad, common_funcs, lo, hi)
244 def bisect_profiles_wrapper(decider, good, bad, perform_check=True): argument
247 # Validate good and bad profiles are such, otherwise bisection reports noise
250 if decider.run(good, save_run=False) != StatusEnum.GOOD_STATUS:
251 raise ValueError("Supplied good profile is not actually GOOD")
255 common_funcs = sorted(func for func in good if func in bad)
265 decider, good, bad, common_funcs, 0, len(common_funcs)
272 def range_search(decider, good, bad, common_funcs, lo, hi): argument
279 is GOOD, and then we have a range that causes 'BAD'ness.
300 good_copy[func] = good[func]
313 good_copy[func] = good[func]
343 prof = good.copy()
370 def check_good_not_bad(decider, good, bad): argument
371 """Check if bad prof becomes GOOD by adding funcs it lacks from good prof"""
373 for func in good:
375 bad_copy[func] = good[func]
379 def check_bad_not_good(decider, good, bad): argument
380 """Check if good prof BAD after adding funcs bad prof has that good doesnt"""
381 good_copy = good.copy()
383 if func not in good:
396 help='Text-based "Good" profile for analysis',
407 "GOOD/BAD/SKIP",