jon.recoil.org

Module Llvm_ir.Type

Types in LLVM IR. These include both first-class types (like int or ptr) and non-first-class types (like labels or metadata)

type t =
  1. | Int of {
    1. width_in_bits : int;
    }
  2. | Ptr of {
    1. addrspace : string option;
    }
  3. | Float
  4. | Double
  5. | Struct of t list
  6. | Array of {
    1. num_of_elems : int;
    2. elem_type : t;
    }
  7. | Vector of {
    1. num_of_elems : int;
    2. elem_type : t;
    }
  8. | Label
  9. | Token
  10. | Metadata
val i128 : t
val i64 : t
val i32 : t
val i16 : t
val i8 : t
val i1 : t
val float : t
val double : t
val ptr : t
val val_ptr : t
val doublex2 : t
val label : t
val metadata : t
val _token : t
val of_machtype_component : Cmm.machtype_component -> t
val of_reg : Reg.t -> t
val of_float_width : Cmm.float_width -> t
val pp_t : Format.formatter -> t -> unit
val to_string : t -> string
val equal : t -> t -> bool
val get_struct_elements : t -> t list option
val extract_struct : t -> int list -> t option
val elem_type : t -> t option
val is_ptr : t -> bool
val is_int : t -> bool
val is_floating_point : t -> bool
module Or_void : sig ... end