sig
  type t
  val of_string : string -> Llvm_target.DataLayout.t
  val as_string : Llvm_target.DataLayout.t -> string
  val add_to_pass_manager :
    [< Llvm.PassManager.any ] Llvm.PassManager.t ->
    Llvm_target.DataLayout.t -> unit
  val byte_order : Llvm_target.DataLayout.t -> Llvm_target.Endian.t
  val pointer_size : Llvm_target.DataLayout.t -> int
  val intptr_type : Llvm.llcontext -> Llvm_target.DataLayout.t -> Llvm.lltype
  val qualified_pointer_size : int -> Llvm_target.DataLayout.t -> int
  val qualified_intptr_type :
    Llvm.llcontext -> int -> Llvm_target.DataLayout.t -> Llvm.lltype
  val size_in_bits : Llvm.lltype -> Llvm_target.DataLayout.t -> Int64.t
  val store_size : Llvm.lltype -> Llvm_target.DataLayout.t -> Int64.t
  val abi_size : Llvm.lltype -> Llvm_target.DataLayout.t -> Int64.t
  val abi_align : Llvm.lltype -> Llvm_target.DataLayout.t -> int
  val stack_align : Llvm.lltype -> Llvm_target.DataLayout.t -> int
  val preferred_align : Llvm.lltype -> Llvm_target.DataLayout.t -> int
  val preferred_align_of_global :
    Llvm.llvalue -> Llvm_target.DataLayout.t -> int
  val element_at_offset :
    Llvm.lltype -> Int64.t -> Llvm_target.DataLayout.t -> int
  val offset_of_element :
    Llvm.lltype -> int -> Llvm_target.DataLayout.t -> Int64.t
end