Skip to content

Commit ca1a1ad

Browse files
committed
[Seedcorpus] debloat
1 parent 2831fca commit ca1a1ad

File tree

3 files changed

+1
-96
lines changed

3 files changed

+1
-96
lines changed

src/main.ml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
open Util
22
module F = Format
33
module L = Logger
4-
module SP = Seedcorpus.Seedpool
54
module SD = Seedcorpus.Domain
65
module CD = Coverage.Domain
76

src/seedcorpus/dune

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
(library
22
(name seedcorpus)
3-
(modules prep seedpool domain sliced_cfg_edge_cov_based)
3+
(modules prep domain sliced_cfg_edge_cov_based)
44
(libraries
55
util
66
llvm.irreader

src/seedcorpus/seedpool.ml

Lines changed: 0 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -2,97 +2,3 @@ open Util
22
module CD = Coverage.Domain
33
module L = Logger
44
module D = Domain
5-
6-
let run_opt llm =
7-
let h = ALlvm.hash_llm llm in
8-
let filename = Format.sprintf "id:%010d.ll" h in
9-
let filename = ALlvm.save_ll !Config.out_dir filename llm in
10-
let module Opt = Oracle.Optimizer in
11-
let res =
12-
Opt.run ~passes:!Config.optimizer_passes ~mtriple:!Config.mtriple filename
13-
in
14-
AUtil.clean filename;
15-
match res with
16-
| Error Opt.File_not_found ->
17-
Format.eprintf "Coverage not generated: %s@." filename;
18-
None
19-
| Error _ -> None
20-
| Assert _ -> None
21-
| Ok lines -> Some (h, lines)
22-
23-
let can_optimize file =
24-
let module Opt = Oracle.Optimizer in
25-
match
26-
Opt.run ~passes:!Config.optimizer_passes ~mtriple:!Config.mtriple file
27-
with
28-
| Error Non_zero_exit | Error Hang ->
29-
L.info "%s cannot be optimized" file;
30-
AUtil.name_opted_ver file |> AUtil.clean;
31-
false
32-
| Assert _ ->
33-
L.info "Assertion failed: %s" file;
34-
AUtil.name_opted_ver file |> AUtil.clean;
35-
false
36-
| Ok _ | Error File_not_found ->
37-
L.info "%s can be optimized" file;
38-
AUtil.name_opted_ver file |> AUtil.clean;
39-
true
40-
41-
let collect_cleaned_seeds llctx seed_dir =
42-
assert (Sys.file_exists seed_dir && Sys.is_directory seed_dir);
43-
44-
let seed_files = Sys.readdir seed_dir |> Array.to_list in
45-
46-
let optimizable_seeds =
47-
seed_files
48-
|> List.map (Filename.concat seed_dir)
49-
|> List.filter can_optimize
50-
|> List.filter_map (fun path ->
51-
match ALlvm.read_ll llctx path with
52-
| Error _ -> None
53-
| Ok llm -> Some (path, llm))
54-
in
55-
if optimizable_seeds = [] then (
56-
L.info "No optimizable seeds found.";
57-
exit 1);
58-
59-
let cleaned_seeds =
60-
optimizable_seeds
61-
|> List.filter (fun (_path, llm) -> Prep.check_llm_for_mutation llm)
62-
(* |> List.filter_map (fun (path, llm) ->
63-
ALlvm.clean_module_data llm;
64-
Prep.clean_llm llctx true llm |> Option.map (fun llm -> (path, llm))) *)
65-
in
66-
67-
(* cleaned_seeds can be cached since the collection is independent of target_path *)
68-
if cleaned_seeds = [] then (
69-
L.info "No cleaned seeds found.";
70-
exit 1);
71-
72-
cleaned_seeds
73-
74-
let parse_seed_filename filename =
75-
let filename = Filename.chop_extension filename in
76-
(* covers:true -> true *)
77-
let parse_covers s =
78-
let colon = String.index s ':' in
79-
String.sub s (colon + 1) (String.length s - colon - 1)
80-
in
81-
82-
(* score:4.500 -> 4.500 *)
83-
let parse_score s =
84-
let colon = String.index s ':' in
85-
String.sub s (colon + 1) (String.length s - colon - 1)
86-
in
87-
match String.split_on_char ',' filename with
88-
| [ _date; _id; score; covers ] ->
89-
let covers = parse_covers covers in
90-
let score = parse_score score in
91-
Ok (covers, score)
92-
| [ _date; _id; _src; score; covers ] ->
93-
let covers = parse_covers covers in
94-
let score = parse_score score in
95-
Ok (covers, score)
96-
| lst ->
97-
List.iter (Format.eprintf "%s@.") lst;
98-
Format.asprintf "Can't parse the filename: %s@." filename |> Result.error

0 commit comments

Comments
 (0)