diff options
author | nicolas.nardino <nicolas.nardino@ens-lyon.fr> | 2021-06-04 14:24:07 +0200 |
---|---|---|
committer | nicolas.nardino <nicolas.nardino@ens-lyon.fr> | 2021-06-04 14:24:07 +0200 |
commit | 7ae1fb0faea68ce5cfe04a232e49659247c244e9 (patch) | |
tree | 2f50c53d68ab67ce5f9b1b9ec947a4a3147076ac /scheduling/RTLpathScheduleraux.ml | |
parent | 3181fe5407ed0221714830e2bd1e19850eac5461 (diff) | |
download | compcert-kvx-7ae1fb0faea68ce5cfe04a232e49659247c244e9.tar.gz compcert-kvx-7ae1fb0faea68ce5cfe04a232e49659247c244e9.zip |
Passing info of live regs to scheduler: beginning
Diffstat (limited to 'scheduling/RTLpathScheduleraux.ml')
-rw-r--r-- | scheduling/RTLpathScheduleraux.ml | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/scheduling/RTLpathScheduleraux.ml b/scheduling/RTLpathScheduleraux.ml index aeed39df..55f1a078 100644 --- a/scheduling/RTLpathScheduleraux.ml +++ b/scheduling/RTLpathScheduleraux.ml @@ -72,6 +72,11 @@ let get_superblocks code entry pm typing = lsb end +(* PLACEHOLDER *) +let get_live_regs_entry (sb : superblock) = + Registers.Regset.empty + + (* TODO David *) let schedule_superblock sb code = if not !Clflags.option_fprepass @@ -90,6 +95,7 @@ let schedule_superblock sb code = match predicted_successor ii with | Some _ -> 0 | None -> 1 in + let live_regs_entry = get_live_regs_entry sb in match PrepassSchedulingOracle.schedule_sequence (Array.map (fun i -> (match PTree.get i code with @@ -98,7 +104,8 @@ let schedule_superblock sb code = (match PTree.get i sb.liveins with | Some s -> s | None -> Regset.empty)) - (Array.sub sb.instructions 0 (nr_instr-trailer_length))) with + (Array.sub sb.instructions 0 (nr_instr-trailer_length))) + live_regs_entry with | None -> sb.instructions | Some order -> let ins' = |