aboutsummaryrefslogtreecommitdiffstats
path: root/test/Bindings
diff options
context:
space:
mode:
authorGordon Henriksen <gordonhenriksen@mac.com>2008-03-16 20:08:03 +0000
committerGordon Henriksen <gordonhenriksen@mac.com>2008-03-16 20:08:03 +0000
commit3e0c83559397c87e06ef29c41385e7adc34573c2 (patch)
tree2cede6fd76e7d63ba9cc4e0d1c272a5fbbdfaffa /test/Bindings
parentf7a91e68a8566c265ed6f4ab827d53a5c0c690ee (diff)
downloadexternal_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.ml12
-rw-r--r--test/Bindings/Ocaml/target.ml51
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