Module CompareCFG

Comparison of CFGs.

include module type of struct include CompareAST end
module StringMap = CompareAST.StringMap
type method_rename_assumptions = GoblintCil.varinfo CilMaps.VarinfoMap.t
type glob_var_rename_assumptions = GoblintCil.varinfo CilMaps.VarinfoMap.t
type renamesOnSuccess = (GoblintCil.compinfo * GoblintCil.compinfo) list * (GoblintCil.enuminfo * GoblintCil.enuminfo) list
val rename_mapping_aware_name_comparison : string -> string -> rename_mapping -> bool
val create_locals_rename_mapping : string list -> string list -> string StringMap.t
val is_rename_mapping_empty : rename_mapping -> bool
val (&&>>) : (bool * rename_mapping) -> (rename_mapping:rename_mapping -> bool * rename_mapping) -> bool * rename_mapping
val (&&>) : (bool * rename_mapping) -> bool -> bool * rename_mapping
val forward_list_equal : ?propF: ((bool * rename_mapping) -> (rename_mapping:rename_mapping -> bool * rename_mapping) -> bool * rename_mapping) -> ('a -> 'b -> rename_mapping:rename_mapping -> bool * rename_mapping) -> 'c list -> 'd list -> rename_mapping:rename_mapping -> bool * rename_mapping
val compare_name : string -> string -> bool
val eq_constant : rename_mapping:rename_mapping -> acc:(GoblintCil.typ * GoblintCil.typ) list -> GoblintCil.constant -> GoblintCil.constant -> bool * rename_mapping
val eq_lhost : GoblintCil.lhost -> GoblintCil.lhost -> rename_mapping:rename_mapping -> acc:(GoblintCil.typ * GoblintCil.typ) list -> bool * rename_mapping
val global_typ_acc : (GoblintCil.typ * GoblintCil.typ) list Stdlib.ref
val mem_typ_acc : GoblintCil.typ -> GoblintCil.typ -> (GoblintCil.typ * GoblintCil.typ) list -> bool
val pretty_length : unit -> (GoblintCil.typ * GoblintCil.typ) list -> GoblintCil.Pretty.doc
val eq_typ_acc : ?fun_parameter_name_comparison_enabled:bool -> GoblintCil.typ -> GoblintCil.typ -> rename_mapping:rename_mapping -> acc:(GoblintCil.typ * GoblintCil.typ) list -> bool * rename_mapping
val eq_eitems : (string * GoblintCil.attributes * GoblintCil.exp * GoblintCil.location) -> (string * GoblintCil.attributes * GoblintCil.exp * GoblintCil.location) -> rename_mapping:rename_mapping -> acc:(GoblintCil.typ * GoblintCil.typ) list -> bool * rename_mapping
val eq_enuminfo : GoblintCil.enuminfo -> GoblintCil.enuminfo -> rename_mapping:rename_mapping -> acc:(GoblintCil.typ * GoblintCil.typ) list -> bool * rename_mapping
val eq_args : ?fun_parameter_name_comparison_enabled:bool -> (string * GoblintCil.typ * GoblintCil.attributes) -> (string * GoblintCil.typ * GoblintCil.attributes) -> rename_mapping:rename_mapping -> acc:(GoblintCil.typ * GoblintCil.typ) list -> bool * rename_mapping
val eq_attrparam : GoblintCil.attrparam -> GoblintCil.attrparam -> rename_mapping:rename_mapping -> acc:(GoblintCil.typ * GoblintCil.typ) list -> bool * rename_mapping
val eq_attribute : GoblintCil.attribute -> GoblintCil.attribute -> acc:(GoblintCil.typ * GoblintCil.typ) list -> rename_mapping:rename_mapping -> bool * rename_mapping
val eq_compinfo : GoblintCil.compinfo -> GoblintCil.compinfo -> (GoblintCil.typ * GoblintCil.typ) list -> rename_mapping -> bool * rename_mapping
val eq_fieldinfo : GoblintCil.fieldinfo -> GoblintCil.fieldinfo -> acc:(GoblintCil.typ * GoblintCil.typ) list -> rename_mapping:rename_mapping -> bool * rename_mapping
val eq_typ : ?fun_parameter_name_comparison_enabled:bool -> GoblintCil.typ -> GoblintCil.typ -> rename_mapping:rename_mapping -> bool * rename_mapping
val eq_exp : GoblintCil.exp -> GoblintCil.exp -> rename_mapping:rename_mapping -> bool * rename_mapping
val eq_varinfo : GoblintCil.varinfo -> GoblintCil.varinfo -> rename_mapping:rename_mapping -> bool * rename_mapping
val eq_lval : GoblintCil.lval -> GoblintCil.lval -> rename_mapping:rename_mapping -> bool * rename_mapping
val eq_offset : GoblintCil.offset -> GoblintCil.offset -> rename_mapping:rename_mapping -> bool * rename_mapping
val eq_instr : GoblintCil.instr -> GoblintCil.instr -> rename_mapping:rename_mapping -> bool * rename_mapping
val eq_label : GoblintCil.label -> GoblintCil.label -> bool
val eq_stmt_with_location : (GoblintCil.stmt * GoblintCil.fundec) -> (GoblintCil.stmt * GoblintCil.fundec) -> bool
val eq_stmtkind : ?cfg_comp:bool -> (GoblintCil.stmtkind * GoblintCil.fundec) -> (GoblintCil.stmtkind * GoblintCil.fundec) -> rename_mapping:rename_mapping -> bool * rename_mapping
val eq_stmt : ?cfg_comp:bool -> (GoblintCil.stmt * GoblintCil.fundec) -> (GoblintCil.stmt * GoblintCil.fundec) -> rename_mapping:rename_mapping -> bool * rename_mapping
val eq_block : (GoblintCil.block * GoblintCil.fundec) -> (GoblintCil.block * GoblintCil.fundec) -> rename_mapping:rename_mapping -> bool * rename_mapping
val eq_init : GoblintCil.init -> GoblintCil.init -> rename_mapping:rename_mapping -> bool * rename_mapping
val eq_initinfo : GoblintCil.initinfo -> GoblintCil.initinfo -> rename_mapping:rename_mapping -> bool * rename_mapping
val (&&<>) : (bool * rename_mapping) -> (rename_mapping:rename_mapping -> bool * rename_mapping) -> bool * rename_mapping
val eq_node : (MyCFG.node * GoblintCil.fundec) -> (MyCFG.node * GoblintCil.fundec) -> rename_mapping:rename_mapping -> bool * rename_mapping
val eq_edge : MyCFG.edge -> MyCFG.edge -> rename_mapping:rename_mapping -> bool * rename_mapping
val eq_edge_list : MyCFG.edge list -> MyCFG.edge list -> rename_mapping:rename_mapping -> bool * rename_mapping
val to_edge_list : ('a * 'b) list -> 'c list
module NH : sig ... end
type biDirectionNodeMap = {
  1. node1to2 : MyCFG.node NH.t;
  2. node2to1 : MyCFG.node NH.t;
}
val compareCfgs : (module MyCFG.CfgForward) -> (module MyCFG.CfgForward) -> GoblintCil.fundec -> GoblintCil.fundec -> rename_mapping -> biDirectionNodeMap * unit NH.t * rename_mapping
val reexamine : 'a -> CilType.Fundec.t -> biDirectionNodeMap -> unit NH.t -> (module MyCFG.CfgForward) -> (module MyCFG.CfgBidir) -> (NH.key * MyCFG.node) Stdlib.Seq.t * NH.key Stdlib.Seq.t
val compareFun : (module MyCFG.CfgForward) -> (module MyCFG.CfgBidir) -> GoblintCil.fundec -> GoblintCil.fundec -> rename_mapping -> (MyCFG.node * MyCFG.node) list * MyCFG.node list * rename_mapping