Module BTL_IfLiftingOracle

module BTL_IfLiftingOracle: sig .. end

Prepass oracle extension to lift conditional branches


module IM: Stdlib.Map.Make(Stdlib.Int)
module RM: Stdlib.Map.Make(Camlcoq.P)
val stat_nb_if_lift : int Stdlib.ref
val stat_nb_compense : int Stdlib.ref
val stat_nb_makespan_gain : int Stdlib.ref
val save_stats : bool
val fprint_stats_header : Stdlib.out_channel -> unit -> unit
val fprint_stats : Stdlib.out_channel -> unit -> unit
val write_stats : unit -> unit
val schedule_get_positions : (BTL.iblock * Registers.Regset.t) array ->
BTL.iblock option ->
'a ->
BTL.iblock_info ->
RTLtyping.regenv ->
bool ->
PrepassSchedulingOracle.iflift_mode ->
(int array *
(Registers.reg * Registers.reg) PrepassSchedulingOracle.IM.t option)
option
val compute_compense_makespan : BTL.iblock list -> int
val if_lift : Camlcoq.P.t ->
BTL.iblock_info Maps.PTree.tree ->
RTLtyping.regenv ->
bool ->
(RM.key * Registers.Regset.elt) IM.t ->
BTL.iblock_info Maps.PTree.tree option