[OCaml] Refactor Llvm_target interface
[oota-llvm.git] / bindings / ocaml / target / llvm_target.ml
index 8a6aabf3c6c8de0278d28779cab898da94415716..e43caef9a341eff11e779179e2c1c424b6070522 100644 (file)
@@ -16,32 +16,36 @@ end
 module DataLayout = struct
   type t
 
-  external create : string -> t = "llvm_targetdata_create"
-  external add : t -> [<Llvm.PassManager.any] Llvm.PassManager.t -> unit
-               = "llvm_targetdata_add"
-  external as_string : t -> string = "llvm_targetdata_as_string"
+  external of_string : string -> t = "llvm_datalayout_of_string"
+  external as_string : t -> string = "llvm_datalayout_as_string"
+  external add_to_pass_manager : [<Llvm.PassManager.any]
+                                 Llvm.PassManager.t -> t -> unit
+                               = "llvm_datalayout_add_to_pass_manager"
+  external byte_order : t -> Endian.t = "llvm_datalayout_byte_order"
+  external pointer_size : t -> int = "llvm_datalayout_pointer_size"
+  external intptr_type : Llvm.llcontext -> t -> Llvm.lltype
+                       = "llvm_datalayout_intptr_type"
+  external qualified_pointer_size : int -> t -> int
+                                  = "llvm_datalayout_qualified_pointer_size"
+  external qualified_intptr_type : Llvm.llcontext -> int -> t -> Llvm.lltype
+                                 = "llvm_datalayout_qualified_intptr_type"
+  external size_in_bits : Llvm.lltype -> t -> Int64.t
+                        = "llvm_datalayout_size_in_bits"
+  external store_size : Llvm.lltype -> t -> Int64.t
+                      = "llvm_datalayout_store_size"
+  external abi_size : Llvm.lltype -> t -> Int64.t
+                    = "llvm_datalayout_abi_size"
+  external abi_align : Llvm.lltype -> t -> int
+                     = "llvm_datalayout_abi_align"
+  external stack_align : Llvm.lltype -> t -> int
+                       = "llvm_datalayout_stack_align"
+  external preferred_align : Llvm.lltype -> t -> int
+                           = "llvm_datalayout_preferred_align"
+  external preferred_align_of_global : Llvm.llvalue -> t -> int
+                                   = "llvm_datalayout_preferred_align_of_global"
+  external element_at_offset : Llvm.lltype -> Int64.t -> t -> int
+                             = "llvm_datalayout_element_at_offset"
+  external offset_of_element : Llvm.lltype -> int -> t -> Int64.t
+                             = "llvm_datalayout_offset_of_element"
 end
 
-external byte_order : DataLayout.t -> Endian.t = "llvm_byte_order"
-external pointer_size : DataLayout.t -> int = "llvm_pointer_size"
-external intptr_type : DataLayout.t -> Llvm.llcontext -> Llvm.lltype
-                     = "llvm_intptr_type"
-external qualified_pointer_size : DataLayout.t -> int -> int
-                                = "llvm_qualified_pointer_size"
-external qualified_intptr_type : DataLayout.t -> Llvm.llcontext ->
-                                 int -> Llvm.lltype
-                               = "llvm_qualified_intptr_type"
-external size_in_bits : DataLayout.t -> Llvm.lltype -> Int64.t
-                      = "llvm_size_in_bits"
-external store_size : DataLayout.t -> Llvm.lltype -> Int64.t = "llvm_store_size"
-external abi_size : DataLayout.t -> Llvm.lltype -> Int64.t = "llvm_abi_size"
-external abi_align : DataLayout.t -> Llvm.lltype -> int = "llvm_abi_align"
-external stack_align : DataLayout.t -> Llvm.lltype -> int = "llvm_stack_align"
-external preferred_align : DataLayout.t -> Llvm.lltype -> int
-                         = "llvm_preferred_align"
-external preferred_align_of_global : DataLayout.t -> Llvm.llvalue -> int
-                                   = "llvm_preferred_align_of_global"
-external element_at_offset : DataLayout.t -> Llvm.lltype -> Int64.t -> int
-                           = "llvm_element_at_offset"
-external offset_of_element : DataLayout.t -> Llvm.lltype -> int -> Int64.t
-                           = "llvm_offset_of_element"