aboutsummaryrefslogtreecommitdiffstats
path: root/aarch64
diff options
context:
space:
mode:
authornicolas.nardino <nicolas.nardino@ens-lyon.fr>2021-06-04 16:56:32 +0200
committernicolas.nardino <nicolas.nardino@ens-lyon.fr>2021-06-04 16:56:32 +0200
commit98a7a04258f2cf6caf9f18925cbeeae2f5b17be4 (patch)
tree715086c49904a41e11d0e02ff5a3b90eefce080f /aarch64
parent7ae1fb0faea68ce5cfe04a232e49659247c244e9 (diff)
downloadcompcert-kvx-98a7a04258f2cf6caf9f18925cbeeae2f5b17be4.tar.gz
compcert-kvx-98a7a04258f2cf6caf9f18925cbeeae2f5b17be4.zip
computing live regs at sb entry from its live output regs
Diffstat (limited to 'aarch64')
-rw-r--r--aarch64/PrepassSchedulingOracle.ml6
1 files changed, 3 insertions, 3 deletions
diff --git a/aarch64/PrepassSchedulingOracle.ml b/aarch64/PrepassSchedulingOracle.ml
index 1fd12a6a..a743fb68 100644
--- a/aarch64/PrepassSchedulingOracle.ml
+++ b/aarch64/PrepassSchedulingOracle.ml
@@ -406,11 +406,11 @@ let get_alias_dependencies seqa =
!deps;;
*)
-let define_problem (opweights : opweights) seqa =
+let define_problem (opweights : opweights) (live_entry_regs : Regset.t) seqa =
let simple_deps = get_simple_dependencies opweights seqa in
{ max_latency = -1;
resource_bounds = opweights.pipelined_resource_bounds;
- live_regs_entry = Regset.empty; (* PLACEHOLDER *)
+ live_regs_entry = live_entry_regs;
instruction_usages = Array.map (resources_of_instruction opweights) (Array.map fst seqa);
latency_constraints =
(* if (use_alias_analysis ())
@@ -451,7 +451,7 @@ let schedule_sequence (seqa : (instruction*Regset.t) array)
let nr_instructions = Array.length seqa in
(if !Clflags.option_debug_compcert > 6
then Printf.printf "prepass scheduling length = %d\n" (Array.length seqa));
- let problem = define_problem opweights seqa in
+ let problem = define_problem opweights live_regs_entry seqa in
(if !Clflags.option_debug_compcert > 7
then (print_sequence stdout (Array.map fst seqa);
print_problem stdout problem));