module Rmciltmps: sig
.. end
module RD: Reachingdefs
module AELV: Availexpslv
module UD: Usedef
module IH: Datatype.Int.Hashtbl
module IS: Datatype.Int.Set
val debug : bool Pervasives.ref
type
nameform =
| |
Suffix of string |
| |
Prefix of string |
| |
Exact of string |
val getDefRhs : RD.IH.key ->
(RD.rhs * int * RD.IOS.t RD.IH.t) option
val exp_ok : bool Pervasives.ref
class memReadOrAddrOfFinderClass :
object
.. end
val memReadOrAddrOfFinder : memReadOrAddrOfFinderClass
val exp_is_ok_replacement : Cil_types.exp -> bool
val emptyStmt : Cil_types.stmt
val fsr : Cil_types.stmt Pervasives.ref
class stmtFinderClass : int ->
object
.. end
val find_statement : 'a -> RD.IH.key -> Cil_types.stmt option
val wbHtbl : (RD.IH.key * RD.IH.key, bool) Hashtbl.t
val writes_between : 'a -> RD.IH.key -> RD.IH.key -> bool
val verify_unmodified : UD.VS.t ->
UD.VS.t ->
RD.IOS.t RD.IH.t ->
RD.IOS.t RD.IH.t -> bool
val fdefs : UD.VS.t Pervasives.ref
val udDeepSkindHtbl : (UD.VS.t * UD.VS.t) IH.t
class defCollectorClass :
object
.. end
val defCollector : defCollectorClass
val collect_fun_defs : Cil_types.fundec -> UD.VS.t
val ok_to_replace : Cil_types.varinfo ->
RD.IOS.t RD.IH.t ->
RD.IH.key ->
RD.IOS.t RD.IH.t ->
RD.IH.key -> Cil_types.fundec -> RD.rhs -> bool
val useList : Cil_types.stmt list Pervasives.ref
class useListerClass : int -> Cil_types.varinfo ->
object
.. end
val ok_to_replace_with_incdec : RD.IOS.t RD.IH.t ->
RD.IOS.t RD.IH.t ->
Cil_types.fundec ->
int ->
Cil_types.varinfo ->
RD.rhs -> (int * int * Cil_types.varinfo * Cil_types.binop) option
val iioh : Cil_types.instr option IH.t
val incdecHash : (int * Cil_types.varinfo * Cil_types.binop) IH.t
val idDefHash : (int * int) list IH.t
val id_dh_add : IH.key -> int * int -> unit
val check_form : String.t -> nameform -> bool
val check_forms : String.t -> nameform list -> bool
val forms : nameform list
val varXformClass : ('a -> 'b -> Cil_types.varinfo -> 'c -> 'd -> Cil_types.exp option) ->
'a -> 'b -> 'c -> 'd -> Cil.nopCilVisitor
val lvalXformClass : ('a -> 'b -> Cil_types.lval -> 'c -> 'd -> Cil_types.exp option) ->
'a -> 'b -> 'c -> 'd -> Cil.nopCilVisitor
val iosh_get_useful_def : RD.IOS.t IH.t ->
Cil_types.varinfo -> RD.IOS.elt
val ae_tmp_to_exp_change : bool Pervasives.ref
val ae_tmp_to_exp : Cil_types.exp IH.t ->
'a -> Cil_types.varinfo -> 'b -> bool -> Cil_types.exp option
val ae_lval_to_exp_change : bool Pervasives.ref
val ae_lval_to_exp : Cil_types.exp AELV.LvExpHash.t ->
'a -> AELV.LvExpHash.key -> 'b -> bool -> Cil_types.exp option
val rd_tmp_to_exp_change : bool Pervasives.ref
val rd_tmp_to_exp : RD.IOS.t IH.t ->
RD.IH.key ->
Cil_types.varinfo -> Cil_types.fundec -> bool -> Cil_types.exp option
val rd_fwd_subst : RD.IOS.t IH.t ->
RD.IH.key ->
Cil_types.exp -> Cil_types.fundec -> bool -> Cil_types.exp * bool
val ae_fwd_subst : Cil_types.exp IH.t ->
'a -> Cil_types.exp -> 'b -> bool -> Cil_types.exp * bool
val ae_lv_fwd_subst : Cil_types.exp AELV.LvExpHash.t ->
'a -> Cil_types.exp -> 'b -> bool -> Cil_types.exp * bool
val ae_simp_fwd_subst : Cil_types.exp AELV.LvExpHash.t ->
Cil_types.exp -> bool -> Cil_types.exp * bool
val ae_tmp_to_const_change : bool Pervasives.ref
val ae_tmp_to_const : Cil_types.exp IH.t ->
'a -> Cil_types.varinfo -> 'b -> bool -> Cil_types.exp option
val tmp_to_const_change : bool Pervasives.ref
val tmp_to_const : RD.IOS.t RD.IH.t ->
RD.IH.key ->
Cil_types.varinfo -> Cil_types.fundec -> bool -> Cil_types.exp option
val const_prop : RD.IOS.t RD.IH.t ->
RD.IH.key ->
Cil_types.exp -> Cil_types.fundec -> bool -> Cil_types.exp * bool
val ae_const_prop : Cil_types.exp IH.t ->
'a -> Cil_types.exp -> 'b -> bool -> Cil_types.exp * bool
class expTempElimClass : Cil_types.fundec ->
object
.. end
class expLvTmpElimClass : Cil_types.fundec ->
object
.. end
class incdecTempElimClass : Cil_types.fundec ->
object
.. end
class callTempElimClass : Cil_types.fundec ->
object
.. end
val rm_unused_locals : Cil_types.fundec -> unit
val is_volatile : Cil_types.varinfo -> bool
class unusedRemoverClass :
(
object
Inherits
val mutable unused_set : UD.VS.t
val mutable cur_func : Cil_types.fundec
method private good_var : UD.VS.elt -> bool
method vfunc : Cil_types.fundec -> Cil_types.fundec Cil.visitAction
method vstmt : Cil_types.stmt -> Cil_types.stmt Cil.visitAction
method vblock : Cil_types.block -> Cil_types.block Cil.visitAction
end
:
object ... end
)
val fold_blocks : Cil_types.block -> unit
class removeBrackets :
object
.. end
val eliminate_temps : Cil_types.fundec -> Cil_types.fundec
val eliminateTempsForExpPrinting : Cil_types.fundec -> Cil_types.fundec