diff options
author | Cyril SIX <cyril.six@kalray.eu> | 2019-04-04 14:12:59 +0200 |
---|---|---|
committer | Cyril SIX <cyril.six@kalray.eu> | 2019-04-04 14:12:59 +0200 |
commit | b3ab0cbe385932f8389049d01f4989829725495e (patch) | |
tree | 2dfe198f4bfb82b285dccd4213057074031dc890 /mppa_k1c/PostpassSchedulingOracle.ml | |
parent | f4b802ecd426fe594009817fde6df2dde8e08df2 (diff) | |
download | compcert-kvx-b3ab0cbe385932f8389049d01f4989829725495e.tar.gz compcert-kvx-b3ab0cbe385932f8389049d01f4989829725495e.zip |
Erreur idiote dans les latences ?
Diffstat (limited to 'mppa_k1c/PostpassSchedulingOracle.ml')
-rw-r--r-- | mppa_k1c/PostpassSchedulingOracle.ml | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/mppa_k1c/PostpassSchedulingOracle.ml b/mppa_k1c/PostpassSchedulingOracle.ml index 762c67fc..6bb1c6b8 100644 --- a/mppa_k1c/PostpassSchedulingOracle.ml +++ b/mppa_k1c/PostpassSchedulingOracle.ml @@ -634,6 +634,7 @@ let latency_constraints bb = (* failwith "latency_constraints: not implemented" and read = ref [] and count = ref 0 and constraints = ref [] + and instr_infos = instruction_infos bb in let step (i: inst_info) = let write_accesses = List.map (fun loc -> { inst= !count; loc=loc }) i.write_locs and read_accesses = List.map (fun loc -> { inst= !count; loc=loc }) i.read_locs @@ -641,7 +642,7 @@ let latency_constraints bb = (* failwith "latency_constraints: not implemented" and waw = get_accesses i.write_locs !written and war = get_accesses i.write_locs !read in begin - List.iter (fun (acc: access) -> constraints := {instr_from = acc.inst; instr_to = !count; latency = i.latency} :: !constraints) (raw @ waw); + List.iter (fun (acc: access) -> constraints := {instr_from = acc.inst; instr_to = !count; latency = (List.nth instr_infos acc.inst).latency} :: !constraints) (raw @ waw); List.iter (fun (acc: access) -> constraints := {instr_from = acc.inst; instr_to = !count; latency = 0} :: !constraints) war; (* If it's a control instruction, add an extra 0-lat dependency between this instruction and all the previous ones *) if i.is_control then List.iter (fun n -> constraints := {instr_from = n; instr_to = !count; latency = 0} :: !constraints) (intlist !count); @@ -649,7 +650,6 @@ let latency_constraints bb = (* failwith "latency_constraints: not implemented" read := read_accesses @ !read; count := !count + 1 end - and instr_infos = instruction_infos bb in (List.iter step instr_infos; !constraints) (** |