diff options
author | Gordon Henriksen <gordonhenriksen@mac.com> | 2008-03-16 20:08:03 +0000 |
---|---|---|
committer | Gordon Henriksen <gordonhenriksen@mac.com> | 2008-03-16 20:08:03 +0000 |
commit | 3e0c83559397c87e06ef29c41385e7adc34573c2 (patch) | |
tree | 2cede6fd76e7d63ba9cc4e0d1c272a5fbbdfaffa /test/Bindings | |
parent | f7a91e68a8566c265ed6f4ab827d53a5c0c690ee (diff) | |
download | external_llvm-3e0c83559397c87e06ef29c41385e7adc34573c2.zip external_llvm-3e0c83559397c87e06ef29c41385e7adc34573c2.tar.gz external_llvm-3e0c83559397c87e06ef29c41385e7adc34573c2.tar.bz2 |
C and Objective Caml bindings for the TargetData class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48422 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Bindings')
-rw-r--r-- | test/Bindings/Ocaml/scalar_opts.ml | 12 | ||||
-rw-r--r-- | test/Bindings/Ocaml/target.ml | 51 |
2 files changed, 60 insertions, 3 deletions
diff --git a/test/Bindings/Ocaml/scalar_opts.ml b/test/Bindings/Ocaml/scalar_opts.ml index 2f520b1..7f850cb 100644 --- a/test/Bindings/Ocaml/scalar_opts.ml +++ b/test/Bindings/Ocaml/scalar_opts.ml @@ -1,4 +1,4 @@ -(* RUN: %ocamlc -warn-error A llvm.cma llvm_scalar_opts.cma %s -o %t +(* RUN: %ocamlc -warn-error A llvm.cma llvm_scalar_opts.cma llvm_target.cma %s -o %t *) (* Note: It takes several seconds for ocamlc to link an executable with @@ -7,6 +7,7 @@ open Llvm open Llvm_scalar_opts +open Llvm_target (* Tiny unit test framework - really just to help find which line is busted *) @@ -31,8 +32,11 @@ let test_transforms () = let fn = define_function "fn" fty m in ignore (build_ret_void (builder_at_end (entry_block fn))); + let td = TargetData.create (target_triple m) in + ignore (PassManager.create_function mp - (* ++ add_instruction_combining Requires target data. *) + ++ TargetData.add td + ++ add_instruction_combining ++ add_reassociation ++ add_gvn ++ add_cfg_simplification @@ -40,7 +44,9 @@ let test_transforms () = ++ PassManager.initialize ++ PassManager.run_function fn ++ PassManager.finalize - ++ PassManager.dispose) + ++ PassManager.dispose); + + TargetData.dispose td (*===-- Driver ------------------------------------------------------------===*) diff --git a/test/Bindings/Ocaml/target.ml b/test/Bindings/Ocaml/target.ml new file mode 100644 index 0000000..2e83b31 --- /dev/null +++ b/test/Bindings/Ocaml/target.ml @@ -0,0 +1,51 @@ +(* RUN: %ocamlc -warn-error A llvm.cma llvm_target.cma %s -o %t + *) + +(* Note: It takes several seconds for ocamlc to link an executable with + libLLVMCore.a, so it's better to write a big test than a bunch of + little ones. *) + +open Llvm +open Llvm_target + + +(* Tiny unit test framework - really just to help find which line is busted *) +let suite name f = + prerr_endline (name ^ ":"); + f () + + +(*===-- Fixture -----------------------------------------------------------===*) + +let filename = Sys.argv.(1) +let m = create_module filename + + +(*===-- Target Data -------------------------------------------------------===*) + +let test_target_data () = + let td = TargetData.create (target_triple m) in + let sty = struct_type [| i32_type; i64_type |] in + + ignore (TargetData.as_string td); + ignore (TargetData.invalidate_struct_layout td sty); + ignore (byte_order td); + ignore (pointer_size td); + ignore (intptr_type td); + ignore (size_in_bits td sty); + ignore (store_size td sty); + ignore (abi_size td sty); + ignore (stack_align td sty); + ignore (preferred_align td sty); + ignore (preferred_align_of_global td (declare_global sty "g" m)); + ignore (element_at_offset td sty (Int64.of_int 1)); + ignore (offset_of_element td sty 1); + + TargetData.dispose td + + +(*===-- Driver ------------------------------------------------------------===*) + +let _ = + suite "target data" test_target_data; + dispose_module m |