Module BTL_BlockOptimizer

module BTL_BlockOptimizer: sig .. end

Main interface to communicate with BTL oracles


module IM: Stdlib.Map.Make(Stdlib.Int)
val simple_schedule : BinNums.positive ->
BTL.iblock_info ->
BTL.iblock_info Maps.PTree.tree ->
RTLtyping.regenv -> bool -> BTL.iblock_info Maps.PTree.tree option
val turn_all_loads_nontrap : BinNums.positive ->
BTL.iblock_info ->
BTL.iblock_info Maps.PTree.tree -> BTL.iblock_info Maps.PTree.tree
val schedule_blk : Camlcoq.P.t ->
BTL.iblock_info ->
BTL.iblock_info Maps.PTree.tree ->
RTLtyping.regenv ->
(BTL_IfLiftingOracle.IM.key * int) BTL_IfLiftingOracle.IM.t ->
bool -> BTL.iblock_info Maps.PTree.tree option
val schedule_tf : bool ->
BTL.iblock_info Maps.PTree.t ->
BTLtypes.function_info ->
Camlcoq.P.t -> BTL.iblock_info -> BTL.iblock_info Maps.PTree.t
val apply_optims : ('a -> 'b -> 'c -> 'd -> 'a) -> 'a -> 'b -> ('c * 'd) list -> 'a
val btl_expansions_oracle : BTL.coq_function ->
(BTL.iblock_info Maps.PTree.t * BTL.function_info) *
BTL_Invariants.invariants Maps.PTree.t
val btl_int_promotion_oracle : BTL.coq_function -> (BTL.code * BTL.function_info) * BTL_Invariants.gluemap
val btl_lazy_code_oracle : BTL.coq_function ->
(BTL.iblock_info Maps.PTree.t * BTL.function_info) * BTL_Invariants.gluemap
val btl_scheduling_oracle : BTL.coq_function ->
(BTL.iblock_info Maps.PTree.t * BTL.function_info) *
BTL_Invariants.invariants Maps.PTree.t
module StoreMotionOracle1: StoreMotionOracle.Make(StoreMotionOracle.StTotal)
module StoreMotionOracle2: StoreMotionOracle.Make(StoreMotionOracle.StPartial)
val btl_store_motion_oracle : BTL.coq_function -> (BTL.code * BTL.function_info) * BTL_Invariants.gluemap
val btl_expansions_rrules : unit -> BTL_SEsimuref.rrules_set
val btl_lazy_code_rrules : unit -> BTL_SEsimuref.rrules_set
val btl_lazy_code_annotate_analysis : unit -> bool
val btl_store_motion_rrules : unit -> BTL_SEsimuref.rrules_set
val btl_store_motion_annotate_analysis : unit -> bool
val btl_scheduling_rrules : unit -> BTL_SEsimuref.rrules_set
val btl_scheduling_annotate_analysis : unit -> bool