diff options
author | Yann Herklotz <git@yannherklotz.com> | 2021-01-06 18:59:07 +0000 |
---|---|---|
committer | Yann Herklotz <git@yannherklotz.com> | 2021-01-06 18:59:07 +0000 |
commit | da34700998cbaf705c761a3d5b3a4e14994623e4 (patch) | |
tree | 84b7f00d68a2efaaef16abd32a9f642b654c0c03 /src/SoftwarePipelining/SoftwarePipelining.ml | |
parent | 67c0250258e3d38faf06c755efb2aa556b4ebe79 (diff) | |
download | vericert-da34700998cbaf705c761a3d5b3a4e14994623e4.tar.gz vericert-da34700998cbaf705c761a3d5b3a4e14994623e4.zip |
Add comments to pipelining code
Diffstat (limited to 'src/SoftwarePipelining/SoftwarePipelining.ml')
-rw-r--r-- | src/SoftwarePipelining/SoftwarePipelining.ml | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/SoftwarePipelining/SoftwarePipelining.ml b/src/SoftwarePipelining/SoftwarePipelining.ml index fd95134..0ba6d9d 100644 --- a/src/SoftwarePipelining/SoftwarePipelining.ml +++ b/src/SoftwarePipelining/SoftwarePipelining.ml @@ -38,6 +38,10 @@ let find node schedule opt = try NI.find node schedule with | Not_found -> opt +(* A random heuristic is used to pick the next instruction to be scheduled from the unscheduled + * instructions. The scheduled instructions are given to the function, and the unscheduled + * instructions are created by taking all the instructions that are not in the scheduled list. + *) let random ddg schedule = let unscheduled = G.fold_vertex (fun node l -> match find node schedule None with @@ -55,7 +59,7 @@ module Scc = Graph.Components.Make (G) let order = ref [] -let pipeliner ddg = +let pipeliner ddg = order := List.flatten (Scc.scc_list ddg); let (sched,ii) = SPIMS.pipeliner ddg random in let (steady,prolog,epilog,min,unroll,entrance,way_out) = SPMVE.mve ddg sched ii in |