module RTLtoBTLaux:sig
..end
Translation from RTL to BTL and block selection
val get_join_points : RTL.instruction Maps.PTree.t -> Camlcoq.P.t -> Bitv.t
val make_synth_node : BTL.iblock_info Maps.PTree.tree Stdlib.ref ->
bool -> Bitv.t -> Camlcoq.P.t -> Camlcoq.P.t
val encaps_final : BTL.iblock_info Maps.PTree.tree Stdlib.ref ->
BTL.iblock -> Camlcoq.P.t option -> bool -> Bitv.t -> BTL.iblock
val translate_inst : BTL.iblock_info Maps.PTree.tree Stdlib.ref ->
BTL.inst_info_shadow ->
RTL.instruction -> bool -> bool -> Bitv.t -> BTL.iblock
val no_join_point_successor : Bitv.t -> Camlcoq.P.t option -> Camlcoq.P.t option
val translate_function : RTL.instruction Maps.PTree.t ->
Camlcoq.P.t ->
Bitv.t ->
bool ->
bool -> BTL.iblock_info Maps.PTree.t * Camlcoq.P.t * Camlcoq.P.t Maps.PTree.t
val rtl2btl : RTL.coq_function ->
bool ->
bool ->
((BTL.iblock_info Maps.PTree.t * Camlcoq.P.t) * BTLtypes.function_info) *
Camlcoq.P.t Maps.PTree.t
Main translation function, that can either build basic-blocks or superblocks, and that can optionnaly insert synthetic nodes
val rtl2btl_BB : RTL.coq_function ->
((BTL.iblock_info Maps.PTree.t * Camlcoq.P.t) * BTLtypes.function_info) *
Camlcoq.P.t Maps.PTree.t
Translate from RTL to BTL with basic-blocks
val rtl2btl_BBSN : RTL.coq_function ->
((BTL.iblock_info Maps.PTree.t * Camlcoq.P.t) * BTLtypes.function_info) *
Camlcoq.P.t Maps.PTree.t
Translate from RTL to BTL with basic-blocks and synthetic nodes
val rtl2btl_SB : RTL.coq_function ->
((BTL.iblock_info Maps.PTree.t * Camlcoq.P.t) * BTLtypes.function_info) *
Camlcoq.P.t Maps.PTree.t
Translate from RTL to BTL with superblocks