aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2022-03-06 17:52:06 +0000
committerYann Herklotz <git@yannherklotz.com>2022-03-06 17:52:06 +0000
commitd3f4c2ef8afa87619af1a92c23e3e97711835015 (patch)
tree5dcaf5437fb699fe5d0efda9465a1e34df3d21f1
parent518acb94265ad29f7a6081efb682d10bc685e759 (diff)
downloadvericert-kvx-d3f4c2ef8afa87619af1a92c23e3e97711835015.tar.gz
vericert-kvx-d3f4c2ef8afa87619af1a92c23e3e97711835015.zip
Fix RAW dependency calculation for predicates
-rw-r--r--src/hls/Schedule.ml3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/hls/Schedule.ml b/src/hls/Schedule.ml
index 1969cad..11c7308 100644
--- a/src/hls/Schedule.ml
+++ b/src/hls/Schedule.ml
@@ -328,6 +328,7 @@ let accumulate_RAW_deps map dfg curr =
match curr with
| RBop (op, _, rs, dst) -> acc_dep_instruction rs dst
| RBload (op, _mem, _addr, rs, dst) -> acc_dep_instruction rs dst
+ | RBsetpred (_op, _mem, rs, _p) -> acc_dep_instruction_nodst rs
| RBstore (op, _mem, _addr, rs, src) -> acc_dep_instruction_nodst (src :: rs)
| _ -> (i + 1, dst_map, graph)
@@ -425,6 +426,7 @@ let get_predicate = function
| RBop (p, _, _, _) -> p
| RBload (p, _, _, _, _) -> p
| RBstore (p, _, _, _, _) -> p
+ | RBsetpred (p, _, _, _) -> p
| _ -> None
let rec next_setpred p i = function
@@ -448,6 +450,7 @@ let rec next_preduse p i instr=
| RBload (Some p', _, _, _, _) :: rst -> next p' rst
| RBstore (Some p', _, _, _, _) :: rst -> next p' rst
| RBop (Some p', _, _, _) :: rst -> next p' rst
+ | RBsetpred (Some p', _, _, _) :: rst -> next p' rst
| _ :: rst -> next_load (i + 1) rst
let accumulate_RAW_pred_deps instrs dfg curri =