module StPartial: sig
.. end
type
t = StoreMotionOracle.cand list
type
s = bool list
val empty : t
val block_entry : t -> StoreMotionOracle.cand list
val empty_subset : t -> s
val subset : t ->
s -> StoreMotionOracle.cand list
val meminv : t -> BTL_Invariants.imem
val self_inv_annot : t -> BTL_Invariants.store_num_t list option
val close_subset : t ->
s -> bool list -> s
val compensate : t ->
s ->
s -> StoreMotionOracle.stores
val remove_addr : StoreMotionOracle.address ->
t ->
t * bool *
(s ->
s * StoreMotionOracle.stores)
val limit_size : t ->
t * bool *
(s -> s)
val push0 : StoreMotionOracle.cand ->
t ->
t *
(s -> s * bool)
val push : StoreMotionOracle.cand ->
t ->
t * (bool * bool) *
(s ->
s * StoreMotionOracle.stores * bool)
type
smash_t = t ->
t *
(s -> s)
val smash : (StoreMotionOracle.cand -> bool) ->
t ->
t *
(s -> s)
val smash_reg : Registers.reg -> smash_t
val smash_all : smash_t
type
icand = int * StoreMotionOracle.cand
type
mt_list = (StoreMotionOracle.cand * (int * int)) list
val t_join : t ->
t ->
(t,
s ->
s * BTL.meminv_annot_t)
StoreMotionOracle.join_res
val s_join : t ->
s ->
s ->
(s, StoreMotionOracle.stores)
StoreMotionOracle.join_res
val print : Stdlib.out_channel -> StoreMotionOracle.cand list -> unit
val print_subset : Stdlib.out_channel -> bool list -> unit