[llvm] r194381 - [OCaml] Accept context explicitly in Llvm_target functions

Peter Zotov whitequark at whitequark.org
Mon Nov 11 06:47:20 PST 2013


Author: whitequark
Date: Mon Nov 11 08:47:20 2013
New Revision: 194381

URL: http://llvm.org/viewvc/llvm-project?rev=194381&view=rev
Log:
[OCaml] Accept context explicitly in Llvm_target functions

Llvm_target.intptr_type used to implicitly use global context. As
none of other functions in OCaml bindings do, it is changed to
accept context explicitly.

Modified:
    llvm/trunk/bindings/ocaml/target/llvm_target.ml
    llvm/trunk/bindings/ocaml/target/llvm_target.mli
    llvm/trunk/bindings/ocaml/target/target_ocaml.c
    llvm/trunk/test/Bindings/Ocaml/executionengine.ml
    llvm/trunk/test/Bindings/Ocaml/target.ml

Modified: llvm/trunk/bindings/ocaml/target/llvm_target.ml
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ocaml/target/llvm_target.ml?rev=194381&r1=194380&r2=194381&view=diff
==============================================================================
--- llvm/trunk/bindings/ocaml/target/llvm_target.ml (original)
+++ llvm/trunk/bindings/ocaml/target/llvm_target.ml Mon Nov 11 08:47:20 2013
@@ -24,7 +24,8 @@ 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.lltype = "llvm_intptr_type"
+external intptr_type : DataLayout.t -> Llvm.llcontext -> Llvm.lltype
+                     = "llvm_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"

Modified: llvm/trunk/bindings/ocaml/target/llvm_target.mli
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ocaml/target/llvm_target.mli?rev=194381&r1=194380&r2=194381&view=diff
==============================================================================
--- llvm/trunk/bindings/ocaml/target/llvm_target.mli (original)
+++ llvm/trunk/bindings/ocaml/target/llvm_target.mli Mon Nov 11 08:47:20 2013
@@ -47,7 +47,8 @@ external pointer_size : DataLayout.t ->
 
 (** Returns the integer type that is the same size as a pointer on a target.
     See the method llvm::DataLayout::getIntPtrType. *)
-external intptr_type : DataLayout.t -> Llvm.lltype = "llvm_intptr_type"
+external intptr_type : DataLayout.t -> Llvm.llcontext -> Llvm.lltype
+                     = "llvm_intptr_type"
 
 (** Computes the size of a type in bits for a target.
     See the method llvm::DataLayout::getTypeSizeInBits. *)

Modified: llvm/trunk/bindings/ocaml/target/target_ocaml.c
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ocaml/target/target_ocaml.c?rev=194381&r1=194380&r2=194381&view=diff
==============================================================================
--- llvm/trunk/bindings/ocaml/target/target_ocaml.c (original)
+++ llvm/trunk/bindings/ocaml/target/target_ocaml.c Mon Nov 11 08:47:20 2013
@@ -72,9 +72,9 @@ CAMLprim value llvm_pointer_size(value T
   return Val_int(LLVMPointerSize(TargetData_val(TD)));
 }
 
-/* DataLayout.t -> int -> Llvm.lltype */
-CAMLprim LLVMTypeRef llvm_intptr_type(value TD) {
-  return LLVMIntPtrType(TargetData_val(TD));;
+/* DataLayout.t -> Llvm.llcontext -> Llvm.lltype */
+CAMLprim LLVMTypeRef llvm_intptr_type(value TD, LLVMContextRef C) {
+  return LLVMIntPtrTypeInContext(C, TargetData_val(TD));;
 }
 
 /* DataLayout.t -> Llvm.lltype -> Int64.t */

Modified: llvm/trunk/test/Bindings/Ocaml/executionengine.ml
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Bindings/Ocaml/executionengine.ml?rev=194381&r1=194380&r2=194381&view=diff
==============================================================================
--- llvm/trunk/test/Bindings/Ocaml/executionengine.ml (original)
+++ llvm/trunk/test/Bindings/Ocaml/executionengine.ml Mon Nov 11 08:47:20 2013
@@ -107,7 +107,7 @@ let test_executionengine () =
   let td = ExecutionEngine.target_data ee in
 
   (* Demonstrate that a garbage pointer wasn't returned. *)
-  let ty = intptr_type td in
+  let ty = intptr_type td context in
   if ty != i32_type && ty != i64_type then bomb "target_data did not work";
   
   (* dispose *)

Modified: llvm/trunk/test/Bindings/Ocaml/target.ml
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Bindings/Ocaml/target.ml?rev=194381&r1=194380&r2=194381&view=diff
==============================================================================
--- llvm/trunk/test/Bindings/Ocaml/target.ml (original)
+++ llvm/trunk/test/Bindings/Ocaml/target.ml Mon Nov 11 08:47:20 2013
@@ -46,7 +46,7 @@ let test_target_data () =
   assert_equal (DataLayout.as_string td) layout;
   assert_equal (byte_order td) Endian.Little;
   assert_equal (pointer_size td) 4;
-  assert_equal (intptr_type td) i32_type;
+  assert_equal (intptr_type td context) i32_type;
   assert_equal (size_in_bits td sty) (Int64.of_int 96);
   assert_equal (store_size td sty) (Int64.of_int 12);
   assert_equal (abi_size td sty) (Int64.of_int 12);





More information about the llvm-commits mailing list