Skip to content

Commit 41725b4

Browse files
committed
[Seedpool] refactor
1 parent 4230910 commit 41725b4

File tree

1 file changed

+10
-15
lines changed

1 file changed

+10
-15
lines changed

src/seedpool.ml

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -236,11 +236,19 @@ let rec clean_llm llctx wide llm =
236236
else None
237237
with _ -> if wide then clean_llm llctx false llm else None
238238

239+
let is_in_slice node_tbl distmap line =
240+
match !Config.coverage with
241+
| Config.FuzzingMode.Sliced_cfg ->
242+
int_of_string line
243+
|> Coverage.node_of_addr node_tbl distmap
244+
|> Option.is_some
245+
| _ -> true
246+
239247
let can_optimize seedfile node_tbl distmap =
240248
match
241249
Opt.run ~passes:!Config.optimizer_passes ~mtriple:!Config.mtriple seedfile
242250
with
243-
| Error Non_zero_exit | Error Hang ->
251+
| Error Non_zero_exit | Error Hang | Assert _ ->
244252
L.debug "%s cannot be optimized" seedfile;
245253
AUtil.name_opted_ver seedfile |> AUtil.clean;
246254
None
@@ -249,23 +257,10 @@ let can_optimize seedfile node_tbl distmap =
249257
AUtil.name_opted_ver seedfile |> AUtil.clean;
250258
if !Config.coverage = Config.FuzzingMode.All_edges then Some (seedfile, [])
251259
else None
252-
| Assert _ ->
253-
L.debug "Opt %s failed by Assertion Error" seedfile;
254-
AUtil.name_opted_ver seedfile |> AUtil.clean;
255-
None
256260
| Ok lines ->
257261
L.debug "%s can be optimized" seedfile;
258262
AUtil.name_opted_ver seedfile |> AUtil.clean;
259-
let filter_func =
260-
match !Config.coverage with
261-
| Config.FuzzingMode.Sliced_cfg ->
262-
fun line ->
263-
int_of_string line
264-
|> Coverage.node_of_addr node_tbl distmap
265-
|> Option.is_some
266-
| _ -> fun _ -> true
267-
in
268-
let lines = lines |> List.filter filter_func in
263+
let lines = lines |> List.filter (is_in_slice node_tbl distmap) in
269264
Some (seedfile, lines)
270265

271266
let push (seed : Seed.t) pool =

0 commit comments

Comments
 (0)