summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeroen Ketema <j.ketema@imperial.ac.uk>2016-04-01 07:54:24 +0000
committerJeroen Ketema <j.ketema@imperial.ac.uk>2016-04-01 07:54:24 +0000
commitc110fbc2137e21e06161b2139775817c463e2ba7 (patch)
tree6322e33a3b946006b219c1348925772d577dd229
parentdb6db505c9bb85e25bc122da7b169b955b725696 (diff)
downloadbcm5719-llvm-c110fbc2137e21e06161b2139775817c463e2ba7.tar.gz
bcm5719-llvm-c110fbc2137e21e06161b2139775817c463e2ba7.zip
[OCaml] Reinstate data_layout
Expose LLVMCreateTargetMachineData as data_layout. As r263530 did for go. From that commit: "LLVMGetTargetDataLayout was removed from the C API, and then TargetMachine.TargetData was removed. Later, LLVMCreateTargetMachineData was added to the C API" Differential Revision: http://reviews.llvm.org/D18677 llvm-svn: 265115
-rw-r--r--llvm/bindings/ocaml/target/llvm_target.ml2
-rw-r--r--llvm/bindings/ocaml/target/llvm_target.mli3
-rw-r--r--llvm/bindings/ocaml/target/target_ocaml.c6
-rw-r--r--llvm/test/Bindings/OCaml/target.ml1
4 files changed, 12 insertions, 0 deletions
diff --git a/llvm/bindings/ocaml/target/llvm_target.ml b/llvm/bindings/ocaml/target/llvm_target.ml
index f968587576f..9e6b706b29e 100644
--- a/llvm/bindings/ocaml/target/llvm_target.ml
+++ b/llvm/bindings/ocaml/target/llvm_target.ml
@@ -121,6 +121,8 @@ module TargetMachine = struct
= "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
diff --git a/llvm/bindings/ocaml/target/llvm_target.mli b/llvm/bindings/ocaml/target/llvm_target.mli
index c1e52317c49..c59308c34e5 100644
--- a/llvm/bindings/ocaml/target/llvm_target.mli
+++ b/llvm/bindings/ocaml/target/llvm_target.mli
@@ -194,6 +194,9 @@ module TargetMachine : sig
[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
diff --git a/llvm/bindings/ocaml/target/target_ocaml.c b/llvm/bindings/ocaml/target/target_ocaml.c
index 4cd64dce3ae..b63bef6d3d5 100644
--- a/llvm/bindings/ocaml/target/target_ocaml.c
+++ b/llvm/bindings/ocaml/target/target_ocaml.c
@@ -296,6 +296,12 @@ CAMLprim value llvm_targetmachine_features(value Machine) {
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));
diff --git a/llvm/test/Bindings/OCaml/target.ml b/llvm/test/Bindings/OCaml/target.ml
index 26deb46a8d8..b9642eb6888 100644
--- a/llvm/test/Bindings/OCaml/target.ml
+++ b/llvm/test/Bindings/OCaml/target.ml
@@ -81,6 +81,7 @@ let test_target_machine () =
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
OpenPOWER on IntegriCloud