mirror of
https://github.com/AFLplusplus/AFLplusplus.git
synced 2025-06-14 11:08:06 +00:00
improve performance for default power schedule
This commit is contained in:
@ -194,9 +194,14 @@ void update_bitmap_score(afl_state_t *afl, struct queue_entry *q) {
|
||||
|
||||
u32 i;
|
||||
u64 fav_factor;
|
||||
u64 fuzz_p2 = next_pow2(q->n_fuzz);
|
||||
u64 fuzz_p2;
|
||||
|
||||
if (afl->schedule == MMOPT || afl->schedule == RARE ||
|
||||
if (unlikely(afl->schedule >= FAST))
|
||||
fuzz_p2 = next_pow2(q->n_fuzz);
|
||||
else
|
||||
fuzz_p2 = q->fuzz_level;
|
||||
|
||||
if (unlikely(afl->schedule == MMOPT || afl->schedule == RARE) ||
|
||||
unlikely(afl->fixed_seed)) {
|
||||
|
||||
fav_factor = q->len << 2;
|
||||
@ -217,9 +222,13 @@ void update_bitmap_score(afl_state_t *afl, struct queue_entry *q) {
|
||||
|
||||
/* Faster-executing or smaller test cases are favored. */
|
||||
u64 top_rated_fav_factor;
|
||||
u64 top_rated_fuzz_p2 = next_pow2(afl->top_rated[i]->n_fuzz);
|
||||
u64 top_rated_fuzz_p2;
|
||||
if (unlikely(afl->schedule >= FAST))
|
||||
top_rated_fuzz_p2 = next_pow2(afl->top_rated[i]->n_fuzz);
|
||||
else
|
||||
top_rated_fuzz_p2 = afl->top_rated[i]->fuzz_level;
|
||||
|
||||
if (afl->schedule == MMOPT || afl->schedule == RARE ||
|
||||
if (unlikely(afl->schedule == MMOPT || afl->schedule == RARE) ||
|
||||
unlikely(afl->fixed_seed)) {
|
||||
|
||||
top_rated_fav_factor = afl->top_rated[i]->len << 2;
|
||||
@ -241,7 +250,7 @@ void update_bitmap_score(afl_state_t *afl, struct queue_entry *q) {
|
||||
|
||||
}
|
||||
|
||||
if (afl->schedule == MMOPT || afl->schedule == RARE ||
|
||||
if (unlikely(afl->schedule == MMOPT || afl->schedule == RARE) ||
|
||||
unlikely(afl->fixed_seed)) {
|
||||
|
||||
if (fav_factor > afl->top_rated[i]->len << 2) { continue; }
|
||||
@ -593,9 +602,12 @@ u32 calculate_score(afl_state_t *afl, struct queue_entry *q) {
|
||||
|
||||
}
|
||||
|
||||
if (factor > MAX_FACTOR) { factor = MAX_FACTOR; }
|
||||
if (unlikely(afl->schedule >= FAST)) {
|
||||
|
||||
perf_score *= factor / POWER_BETA;
|
||||
if (factor > MAX_FACTOR) { factor = MAX_FACTOR; }
|
||||
perf_score *= factor / POWER_BETA;
|
||||
|
||||
}
|
||||
|
||||
// MOpt mode
|
||||
if (afl->limit_time_sig != 0 && afl->max_depth - q->depth < 3) {
|
||||
|
Reference in New Issue
Block a user