diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2020-07-11 10:28:55 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2020-07-11 10:28:55 +0200 |
commit | 291b7bd92b510f9dd2edabcae49d13f8c7466c25 (patch) | |
tree | fc1867a894dbc20594b3543235f5e51f3d8010e0 /kvx | |
parent | ba39e941a47a87ecc67795f955cc24e5c1266428 (diff) | |
download | compcert-kvx-291b7bd92b510f9dd2edabcae49d13f8c7466c25.tar.gz compcert-kvx-291b7bd92b510f9dd2edabcae49d13f8c7466c25.zip |
found another bug
Diffstat (limited to 'kvx')
-rw-r--r-- | kvx/lib/PrepassSchedulingOracle.ml | 4 | ||||
-rw-r--r-- | kvx/lib/RTLpathScheduleraux.ml | 1 |
2 files changed, 3 insertions, 2 deletions
diff --git a/kvx/lib/PrepassSchedulingOracle.ml b/kvx/lib/PrepassSchedulingOracle.ml index 4d70d0aa..9701f446 100644 --- a/kvx/lib/PrepassSchedulingOracle.ml +++ b/kvx/lib/PrepassSchedulingOracle.ml @@ -135,7 +135,7 @@ let get_simple_dependencies (seqa : (instruction*Regset.t) array) = add_input_regs i inputs; add_output_reg i (latency_of_op op (List.length inputs)) output | Iload(trap, chunk, addressing, addr_regs, output, _) -> - irreversible_action i; + (if trap=TRAP then irreversible_action i); add_input_mem i; add_input_regs i addr_regs; add_output_reg i (latency_of_load trap chunk addressing (List.length addr_regs)) output @@ -414,7 +414,7 @@ let schedule_sequence (seqa : (instruction*Regset.t) array) = let problem = define_problem seqa in print_sequence stdout (Array.map fst seqa); print_problem stdout problem; - match reverse_list_scheduler problem + match (*reverse_list_scheduler*) list_scheduler problem (* scheduler_by_name !Clflags.option_fprepass_sched problem *) with | None -> Printf.printf "no solution in prepass scheduling\n"; None diff --git a/kvx/lib/RTLpathScheduleraux.ml b/kvx/lib/RTLpathScheduleraux.ml index 1b8ea20a..7a43fed5 100644 --- a/kvx/lib/RTLpathScheduleraux.ml +++ b/kvx/lib/RTLpathScheduleraux.ml @@ -167,6 +167,7 @@ let change_successors i = function | Icall (a,b,c,d,n) -> Icall (a,b,c,d,s) | Ibuiltin (a,b,c,n) -> Ibuiltin (a,b,c,s) | Ijumptable (a,[n]) -> Ijumptable (a,[s]) + | Icond _ -> failwith "Icond Wrong instruction (2)" | _ -> failwith "Wrong instruction (2)") | [s1; s2] -> ( match i with |