aboutsummaryrefslogtreecommitdiffstats
path: root/aarch64
diff options
context:
space:
mode:
authornicolas.nardino <nicolas.nardino@ens-lyon.fr>2021-06-04 14:24:07 +0200
committernicolas.nardino <nicolas.nardino@ens-lyon.fr>2021-06-04 14:24:07 +0200
commit7ae1fb0faea68ce5cfe04a232e49659247c244e9 (patch)
tree2f50c53d68ab67ce5f9b1b9ec947a4a3147076ac /aarch64
parent3181fe5407ed0221714830e2bd1e19850eac5461 (diff)
downloadcompcert-kvx-7ae1fb0faea68ce5cfe04a232e49659247c244e9.tar.gz
compcert-kvx-7ae1fb0faea68ce5cfe04a232e49659247c244e9.zip
Passing info of live regs to scheduler: beginning
Diffstat (limited to 'aarch64')
-rw-r--r--aarch64/PostpassSchedulingOracle.ml1
-rw-r--r--aarch64/PrepassSchedulingOracle.ml4
2 files changed, 4 insertions, 1 deletions
diff --git a/aarch64/PostpassSchedulingOracle.ml b/aarch64/PostpassSchedulingOracle.ml
index cde3e7a7..a9737088 100644
--- a/aarch64/PostpassSchedulingOracle.ml
+++ b/aarch64/PostpassSchedulingOracle.ml
@@ -507,6 +507,7 @@ let build_problem bb =
{
max_latency = -1;
resource_bounds = opweights.pipelined_resource_bounds;
+ live_regs_entry = Registers.Regset.empty; (* PLACEHOLDER *)
instruction_usages = instruction_usages bb;
latency_constraints = latency_constraints bb;
}
diff --git a/aarch64/PrepassSchedulingOracle.ml b/aarch64/PrepassSchedulingOracle.ml
index 2c3eb14f..1fd12a6a 100644
--- a/aarch64/PrepassSchedulingOracle.ml
+++ b/aarch64/PrepassSchedulingOracle.ml
@@ -410,6 +410,7 @@ let define_problem (opweights : opweights) 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 *)
instruction_usages = Array.map (resources_of_instruction opweights) (Array.map fst seqa);
latency_constraints =
(* if (use_alias_analysis ())
@@ -439,7 +440,8 @@ let prepass_scheduler_by_name name problem early_ones =
| "zigzag" -> zigzag_scheduler problem early_ones
| _ -> scheduler_by_name name problem
-let schedule_sequence (seqa : (instruction*Regset.t) array) =
+let schedule_sequence (seqa : (instruction*Regset.t) array)
+ (live_regs_entry : Registers.Regset.t)=
let opweights = OpWeights.get_opweights () in
try
if (Array.length seqa) <= 1