aboutsummaryrefslogtreecommitdiffstats
path: root/aarch64
diff options
context:
space:
mode:
authornicolas.nardino <nicolas.nardino@ens-lyon.fr>2021-06-12 10:52:59 +0200
committernicolas.nardino <nicolas.nardino@ens-lyon.fr>2021-06-12 10:52:59 +0200
commit2b814b1f9bb30d9c8b59a713f69bced808bca7c7 (patch)
treee558872ae04c25e6e4bd5c7d264c53eb9616ff5c /aarch64
parent1701e43316ee8e69e794a025a8c9979af6bb8c93 (diff)
downloadcompcert-kvx-2b814b1f9bb30d9c8b59a713f69bced808bca7c7.tar.gz
compcert-kvx-2b814b1f9bb30d9c8b59a713f69bced808bca7c7.zip
work on the scheduler
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 834d42f5..867341ca 100644
--- a/aarch64/PostpassSchedulingOracle.ml
+++ b/aarch64/PostpassSchedulingOracle.ml
@@ -509,6 +509,7 @@ let build_problem bb =
resource_bounds = opweights.pipelined_resource_bounds;
live_regs_entry = Registers.Regset.empty; (* unused here *)
typing = (fun x -> AST.Tint); (* unused here *)
+ pressure_deltas = [| [| |] |] ;
instruction_usages = instruction_usages bb;
latency_constraints = latency_constraints bb;
}
diff --git a/aarch64/PrepassSchedulingOracle.ml b/aarch64/PrepassSchedulingOracle.ml
index 6d445f10..19f05749 100644
--- a/aarch64/PrepassSchedulingOracle.ml
+++ b/aarch64/PrepassSchedulingOracle.ml
@@ -201,6 +201,7 @@ let get_simple_dependencies (opweights : opweights) (seqa : (instruction*Regset.
end seqa;
!latency_constraints;;
+
let get_pressure_deltas (seqa : (instruction * Regset.t) array)
(typing : RTLtyping.regenv)
: int array array =
@@ -459,7 +460,8 @@ let define_problem (opweights : opweights) (live_entry_regs : Regset.t)
resource_bounds = opweights.pipelined_resource_bounds;
live_regs_entry = live_entry_regs;
typing = typing;
- instruction_usages = Array.map (resources_of_instruction opweights) (Array.map fst seqa);
+ pressure_deltas = get_pressure_deltas seqa typing;
+ instruction_usages = Array.map (resources_of_instruction opweights) (Array.map fst seqa);
latency_constraints =
(* if (use_alias_analysis ())
then (get_alias_dependencies seqa) @ simple_deps