aboutsummaryrefslogtreecommitdiffstats
path: root/kvx
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-07-11 10:28:55 +0200
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-07-11 10:28:55 +0200
commit291b7bd92b510f9dd2edabcae49d13f8c7466c25 (patch)
treefc1867a894dbc20594b3543235f5e51f3d8010e0 /kvx
parentba39e941a47a87ecc67795f955cc24e5c1266428 (diff)
downloadcompcert-kvx-291b7bd92b510f9dd2edabcae49d13f8c7466c25.tar.gz
compcert-kvx-291b7bd92b510f9dd2edabcae49d13f8c7466c25.zip
found another bug
Diffstat (limited to 'kvx')
-rw-r--r--kvx/lib/PrepassSchedulingOracle.ml4
-rw-r--r--kvx/lib/RTLpathScheduleraux.ml1
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