(*===-- llvm_executionengine.ml - LLVM Ocaml Interface ----------*- C++ -*-===*
 *
 *                     The LLVM Compiler Infrastructure
 *
 * This file is distributed under the University of Illinois Open Source
 * License. See LICENSE.TXT for details.
 *
 *===----------------------------------------------------------------------===*)


exception Error of string

external register_exns: exn -> unit
  = "llvm_register_ee_exns"


module GenericValue = struct
  type t
  
  external of_float: Llvm.lltype -> float -> t
    = "llvm_genericvalue_of_float"
  external of_pointer: 'a -> t
    = "llvm_genericvalue_of_pointer"
  external of_int32: Llvm.lltype -> int32 -> t
    = "llvm_genericvalue_of_int32"
  external of_int: Llvm.lltype -> int -> t
    = "llvm_genericvalue_of_int"
  external of_nativeint: Llvm.lltype -> nativeint -> t
    = "llvm_genericvalue_of_nativeint"
  external of_int64: Llvm.lltype -> int64 -> t
    = "llvm_genericvalue_of_int64"
  
  external as_float: Llvm.lltype -> t -> float
    = "llvm_genericvalue_as_float"
  external as_pointer: t -> 'a
    = "llvm_genericvalue_as_pointer"
  external as_int32: t -> int32
    = "llvm_genericvalue_as_int32"
  external as_int: t -> int
    = "llvm_genericvalue_as_int"
  external as_nativeint: t -> nativeint
    = "llvm_genericvalue_as_nativeint"
  external as_int64: t -> int64
    = "llvm_genericvalue_as_int64"
end


module ExecutionEngine = struct
  type t
  
  (* FIXME: Ocaml is not running this setup code unless we use 'val' in the
            interface, which causes the emission of a stub for each function;
            using 'external' in the module allows direct calls into 
            ocaml_executionengine.c. This is hardly fatal, but it is unnecessary
            overhead on top of the two stubs that are already invoked for each 
            call into LLVM. *)
  let _ = register_exns (Error "")
  
  external create: Llvm.llmodule -> t
    = "llvm_ee_create"
  external create_interpreter: Llvm.llmodule -> t
    = "llvm_ee_create_interpreter"
  external create_jit: Llvm.llmodule -> int -> t
    = "llvm_ee_create_jit"
  external dispose: t -> unit
    = "llvm_ee_dispose"
  external add_module: Llvm.llmodule -> t -> unit
    = "llvm_ee_add_module"
  external remove_module: Llvm.llmodule -> t -> Llvm.llmodule
    = "llvm_ee_remove_module"
  external find_function: string -> t -> Llvm.llvalue option
    = "llvm_ee_find_function"
  external run_function: Llvm.llvalue -> GenericValue.t array -> t ->
                         GenericValue.t
    = "llvm_ee_run_function"
  external run_static_ctors: t -> unit
    = "llvm_ee_run_static_ctors"
  external run_static_dtors: t -> unit
    = "llvm_ee_run_static_dtors"
  external run_function_as_main: Llvm.llvalue -> string array ->
                                 (string * string) array -> t -> int
    = "llvm_ee_run_function_as_main"
  external free_machine_code: Llvm.llvalue -> t -> unit
    = "llvm_ee_free_machine_code"

  external target_data: t -> Llvm_target.TargetData.t
    = "LLVMGetExecutionEngineTargetData"
  
  (* The following are not bound. Patches are welcome.
  
  get_target_data: t -> lltargetdata
  add_global_mapping: llvalue -> llgenericvalue -> t -> unit
  clear_all_global_mappings: t -> unit
  update_global_mapping: llvalue -> llgenericvalue -> t -> unit
  get_pointer_to_global_if_available: llvalue -> t -> llgenericvalue
  get_pointer_to_global: llvalue -> t -> llgenericvalue
  get_pointer_to_function: llvalue -> t -> llgenericvalue
  get_pointer_to_function_or_stub: llvalue -> t -> llgenericvalue
  get_global_value_at_address: llgenericvalue -> t -> llvalue option
  store_value_to_memory: llgenericvalue -> llgenericvalue -> lltype -> unit
  initialize_memory: llvalue -> llgenericvalue -> t -> unit
  recompile_and_relink_function: llvalue -> t -> llgenericvalue
  get_or_emit_global_variable: llvalue -> t -> llgenericvalue
  disable_lazy_compilation: t -> unit
  lazy_compilation_enabled: t -> bool
  install_lazy_function_creator: (string -> llgenericvalue) -> t -> unit
  
   *)
end

external initialize_native_target : unit -> bool
                                  = "llvm_initialize_native_target"
