sig
type rewriting_rules =
(Utils.u2 * Instruction.t) list -> (Utils.u2 * Instruction.t) list
val optimize_constants : Peephole.rewriting_rules
val optimize_locals : Peephole.rewriting_rules
val avoid_conv : Peephole.rewriting_rules
val remove_nops_and_unused_pushed_values : Peephole.rewriting_rules
val optimize_iinc : Peephole.rewriting_rules
val remove_load_store : Peephole.rewriting_rules
val remove_get_put : Peephole.rewriting_rules
val rewrite_store_store : Peephole.rewriting_rules
val rewrite_store_load : Peephole.rewriting_rules
val rewrite_load_load : Peephole.rewriting_rules
val constant_on_the_top : Peephole.rewriting_rules
val remove_neutral_elements : Peephole.rewriting_rules
val rewrite_absorbing_elements : Peephole.rewriting_rules
val apply_stength_reduction : Peephole.rewriting_rules
val remove_identity : Peephole.rewriting_rules
val all_rules : Peephole.rewriting_rules list
type position =
Head
| Tail
| Before of Peephole.rewriting_rules
| After of Peephole.rewriting_rules
val insert :
Peephole.rewriting_rules ->
Peephole.position ->
Peephole.rewriting_rules list -> Peephole.rewriting_rules list
val optimize_list :
?rules:Peephole.rewriting_rules list ->
(Utils.u2 * Instruction.t) list -> (Utils.u2 * Instruction.t) list
val optimize_graph :
?rules:Peephole.rewriting_rules list ->
('a * Utils.u2 list, 'b) ControlFlow.graph ->
('a * Utils.u2 list, 'b) ControlFlow.graph
end