sig
  type t
  val create : Llvm.llmodule -> Llvm_executionengine.ExecutionEngine.t
  val create_interpreter :
    Llvm.llmodule -> Llvm_executionengine.ExecutionEngine.t
  val create_jit :
    Llvm.llmodule -> int -> Llvm_executionengine.ExecutionEngine.t
  val dispose : Llvm_executionengine.ExecutionEngine.t -> unit
  val add_module :
    Llvm.llmodule -> Llvm_executionengine.ExecutionEngine.t -> unit
  val remove_module :
    Llvm.llmodule -> Llvm_executionengine.ExecutionEngine.t -> Llvm.llmodule
  val find_function :
    string -> Llvm_executionengine.ExecutionEngine.t -> Llvm.llvalue option
  val run_function :
    Llvm.llvalue ->
    Llvm_executionengine.GenericValue.t array ->
    Llvm_executionengine.ExecutionEngine.t ->
    Llvm_executionengine.GenericValue.t
  val run_static_ctors : Llvm_executionengine.ExecutionEngine.t -> unit
  val run_static_dtors : Llvm_executionengine.ExecutionEngine.t -> unit
  val run_function_as_main :
    Llvm.llvalue ->
    string array ->
    (string * string) array -> Llvm_executionengine.ExecutionEngine.t -> int
  val free_machine_code :
    Llvm.llvalue -> Llvm_executionengine.ExecutionEngine.t -> unit
  val data_layout :
    Llvm_executionengine.ExecutionEngine.t -> Llvm_target.DataLayout.t
end