[PATCH] D18677: [OCaml] Reinstate data_layout
Jeroen Ketema via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 31 15:33:01 PDT 2016
jketema created this revision.
jketema added a reviewer: whitequark.
jketema added a subscriber: llvm-commits.
Expose LLVMCreateTargetMachineData as data_layout
Similar to r263530. From that commit: "LLVMGetTargetDataLayout was removed from the C API, and then TargetMachine.TargetData was removed. Later, LLVMCreateTargetMachineData was added to the C API"
The original version of this function used CAMLparam and friends as the only function in target_llvm.c It's omitted here, which may be incorrect.
http://reviews.llvm.org/D18677
Files:
bindings/ocaml/target/llvm_target.ml
bindings/ocaml/target/llvm_target.mli
bindings/ocaml/target/target_ocaml.c
test/Bindings/OCaml/target.ml
Index: test/Bindings/OCaml/target.ml
===================================================================
--- test/Bindings/OCaml/target.ml
+++ test/Bindings/OCaml/target.ml
@@ -81,6 +81,7 @@
assert_equal (TM.triple machine) (Target.default_triple ());
assert_equal (TM.cpu machine) "";
assert_equal (TM.features machine) "";
+ ignore (TM.data_layout machine);
TM.set_verbose_asm true machine;
let pm = PassManager.create () in
TM.add_analysis_passes pm machine
Index: bindings/ocaml/target/target_ocaml.c
===================================================================
--- bindings/ocaml/target/target_ocaml.c
+++ bindings/ocaml/target/target_ocaml.c
@@ -296,6 +296,12 @@
TargetMachine_val(Machine)));
}
+/* TargetMachine.t -> DataLayout.t */
+CAMLprim value llvm_targetmachine_data_layout(value Machine) {
+ return llvm_alloc_data_layout(LLVMCreateTargetDataLayout(
+ TargetMachine_val(Machine)));
+}
+
/* bool -> TargetMachine.t -> unit */
CAMLprim value llvm_targetmachine_set_verbose_asm(value Verb, value Machine) {
LLVMSetTargetMachineAsmVerbosity(TargetMachine_val(Machine), Bool_val(Verb));
Index: bindings/ocaml/target/llvm_target.mli
===================================================================
--- bindings/ocaml/target/llvm_target.mli
+++ bindings/ocaml/target/llvm_target.mli
@@ -194,6 +194,9 @@
[llvm::TargetMachine::getCPU]. *)
val cpu : t -> string
+ (** Returns the data layout of this target machine. *)
+ val data_layout : t -> DataLayout.t
+
(** Returns the feature string used while creating this target machine. See
[llvm::TargetMachine::getFeatureString]. *)
val features : t -> string
Index: bindings/ocaml/target/llvm_target.ml
===================================================================
--- bindings/ocaml/target/llvm_target.ml
+++ bindings/ocaml/target/llvm_target.ml
@@ -121,6 +121,8 @@
= "llvm_targetmachine_cpu"
external features : t -> string
= "llvm_targetmachine_features"
+ external data_layout : t -> DataLayout.t
+ = "llvm_targetmachine_data_layout"
external add_analysis_passes : [< Llvm.PassManager.any ] Llvm.PassManager.t -> t -> unit
= "llvm_targetmachine_add_analysis_passes"
external set_verbose_asm : bool -> t -> unit
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18677.52301.patch
Type: text/x-patch
Size: 2402 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160331/81883c4f/attachment.bin>
More information about the llvm-commits
mailing list