package sawja

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type unindexed_var =
  1. | OriginalVar of int * string option
  2. | TempVar of int
  3. | CatchVar of int
  4. | BranchVar of int * int
  5. | BranchVar2 of int * int
  6. | SSAVar of var * int
  7. | FreshVar of int
and var = int * unindexed_var
val var_equal : var -> var -> bool
val varname : string
val tempname : string
val branchvarname : string
val branchvarname2 : string
val freshvarname : string
val var_name_debug : ('a * unindexed_var) -> string option
val catch_var : ('a * unindexed_var) -> bool
val temp_var : ('a * unindexed_var) -> bool
val ssa_var : ('a * unindexed_var) -> bool
val unindexed_var_name : unindexed_var -> string
val var_name : ('a * unindexed_var) -> string
val unindexed_var_name_g : unindexed_var -> string
val var_name_g : ('a * unindexed_var) -> string
val unindexed_bc_num : unindexed_var -> int option
val bc_num : ('a * unindexed_var) -> int option
val index : ('a * 'b) -> 'a
val var_orig : ('a * unindexed_var) -> bool
val var_origin : ('a * unindexed_var) -> var
val var_ssa_index : ('a * unindexed_var) -> int
val make_var_ssa : var -> int -> unindexed_var
module DicoVarMap : sig ... end
type dictionary = {
  1. mutable var_map : var DicoVarMap.t;
  2. mutable var_next : int;
}
val make_dictionary : unit -> dictionary
val make_var : dictionary -> unindexed_var -> var
val make_array_var : dictionary -> (int * unindexed_var) array
val make_dictionary_from : var array -> dictionary
module VarSet : sig ... end
module VarMap : sig ... end
type exception_handler = {
  1. e_start : int;
  2. e_end : int;
  3. e_handler : int;
  4. e_catch_type : Javalib_pack.JBasics.class_name option;
  5. e_catch_var : var;
}
val generic_exception_edges : 'a array -> exception_handler list -> (int * exception_handler) list
val print_handler : exception_handler -> string
type const = [
  1. | `ANull
  2. | `Class of Javalib_pack.JBasics.object_type
  3. | `Double of float
  4. | `Float of float
  5. | `Int of int32
  6. | `Long of int64
  7. | `MethodHandle of Javalib_pack.JBasics.method_handle
  8. | `MethodType of Javalib_pack.JBasics.method_descriptor
  9. | `String of Javalib_pack.JBasics.jstr
]
type conv =
  1. | I2L
  2. | I2F
  3. | I2D
  4. | L2I
  5. | L2F
  6. | L2D
  7. | F2I
  8. | F2L
  9. | F2D
  10. | D2I
  11. | D2L
  12. | D2F
  13. | I2B
  14. | I2C
  15. | I2S
type unop =
  1. | Neg of Javalib_pack.JBasics.jvm_basic_type
  2. | Conv of conv
  3. | ArrayLength
  4. | InstanceOf of Javalib_pack.JBasics.object_type
  5. | Cast of Javalib_pack.JBasics.object_type
type comp =
  1. | DG
  2. | DL
  3. | FG
  4. | FL
  5. | L
type binop =
  1. | ArrayLoad of Javalib_pack.JBasics.value_type
  2. | Add of Javalib_pack.JBasics.jvm_basic_type
  3. | Sub of Javalib_pack.JBasics.jvm_basic_type
  4. | Mult of Javalib_pack.JBasics.jvm_basic_type
  5. | Div of Javalib_pack.JBasics.jvm_basic_type
  6. | Rem of Javalib_pack.JBasics.jvm_basic_type
  7. | IShl
  8. | IShr
  9. | IAnd
  10. | IOr
  11. | IXor
  12. | IUshr
  13. | LShl
  14. | LShr
  15. | LAnd
  16. | LOr
  17. | LXor
  18. | LUshr
  19. | CMP of comp
type virtual_call_kind =
  1. | VirtualCall of Javalib_pack.JBasics.object_type
  2. | InterfaceCall of Javalib_pack.JBasics.class_name
val basic_to_num : [< `Double | `Float | `Int2Bool | `Long ] -> [> `Double | `Float | `Int | `Long ]
val jconst2const : [< `ANull | `Byte of int | `Class of 'a | `Double of 'b | `Float of 'c | `Int of int32 | `Long of 'd | `MethodHandle of 'e | `MethodType of 'f | `Short of int | `String of 'g ] -> [> `ANull | `Class of 'a | `Double of 'b | `Float of 'c | `Int of int32 | `Long of 'd | `MethodHandle of 'e | `MethodType of 'f | `String of 'g ]
val print_const : [< `ANull | `Byte of int | `Class of Javalib_pack.JBasics.object_type | `Double of float | `Float of float | `Int of int32 | `Long of int64 | `MethodHandle of 'a | `MethodType of 'b | `Short of int | `String of Javalib_pack.JBasics.jstr ] -> string
val print_unop : unop -> string
val print_binop : binop -> string
val print_typ : Javalib_pack.JBasics.value_type -> string
type phi_node = {
  1. def : var;
  2. use : var array;
}
val print_phi_node : ?phi_simpl:bool -> phi_node -> string
val print_phi_nodes : ?phi_simpl:bool -> phi_node list -> string
val app_phi_nodes : bool -> int -> int array -> phi_node list -> string list -> string list
exception No_memory_ssa_info_here
type memory_ssa_info = {
  1. mem_ssa_in : int -> int;
  2. mem_ssa_out : int -> int;
  3. mem_ssa_phi : int -> int * int array;
}