diff options
author | Jeroen Ketema <j.ketema@imperial.ac.uk> | 2016-04-01 07:54:24 +0000 |
---|---|---|
committer | Jeroen Ketema <j.ketema@imperial.ac.uk> | 2016-04-01 07:54:24 +0000 |
commit | c110fbc2137e21e06161b2139775817c463e2ba7 (patch) | |
tree | 6322e33a3b946006b219c1348925772d577dd229 /llvm/bindings/ocaml/target | |
parent | db6db505c9bb85e25bc122da7b169b955b725696 (diff) | |
download | bcm5719-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
Diffstat (limited to 'llvm/bindings/ocaml/target')
-rw-r--r-- | llvm/bindings/ocaml/target/llvm_target.ml | 2 | ||||
-rw-r--r-- | llvm/bindings/ocaml/target/llvm_target.mli | 3 | ||||
-rw-r--r-- | llvm/bindings/ocaml/target/target_ocaml.c | 6 |
3 files changed, 11 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)); |