Skip to content

Commit

Permalink
[OCaml] Reinstate data_layout
Browse files Browse the repository at this point in the history
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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@265115 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
Jeroen Ketema committed Apr 1, 2016
1 parent 51f5548 commit 145384c
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 0 deletions.
2 changes: 2 additions & 0 deletions bindings/ocaml/target/llvm_target.ml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 3 additions & 0 deletions bindings/ocaml/target/llvm_target.mli
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
6 changes: 6 additions & 0 deletions bindings/ocaml/target/target_ocaml.c
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Expand Down
1 change: 1 addition & 0 deletions test/Bindings/OCaml/target.ml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit 145384c

Please sign in to comment.