Add (very basic) bindings for ModuleProvider.
[oota-llvm.git] / bindings / ocaml / llvm / llvm.ml
index a415b94594707096617e2feb30f7edbdab40b8cb..6ede17978bff2a418ca51334cf3bb986fbd42883 100644 (file)
@@ -14,6 +14,7 @@ type lltypehandle
 type llvalue
 type llbasicblock
 type llbuilder
+type llmoduleprovider
 
 type type_kind =
   Void_type
@@ -282,6 +283,8 @@ external is_intrinsic : llvalue -> bool = "llvm_is_intrinsic"
 external function_call_conv : llvalue -> int = "llvm_function_call_conv"
 external set_function_call_conv : int -> llvalue -> unit
                                 = "llvm_set_function_call_conv"
+external collector : llvalue -> string option = "llvm_collector"
+external set_collector : string option -> llvalue -> unit = "llvm_set_collector"
 
 (* TODO: param attrs *)
 
@@ -425,6 +428,13 @@ external build_shufflevector : llvalue -> llvalue -> llvalue -> string ->
                                llbuilder -> llvalue = "llvm_build_shufflevector"
 
 
+(*===-- Module providers --------------------------------------------------===*)
+external create_module_provider : llmodule -> llmoduleprovider
+                                = "LLVMCreateModuleProviderForExistingModule"
+external dispose_module_provider : llmoduleprovider -> unit
+                                 = "llvm_dispose_module_provider"
+
+
 (*===-- Non-Externs -------------------------------------------------------===*)
 (* These functions are built using the externals, so must be declared late.   *)