[OCaml] Llvm_ipo: add missing transforms
authorPeter Zotov <whitequark@whitequark.org>
Sun, 3 Nov 2013 07:54:08 +0000 (07:54 +0000)
committerPeter Zotov <whitequark@whitequark.org>
Sun, 3 Nov 2013 07:54:08 +0000 (07:54 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193945 91177308-0d34-0410-b5e6-96231b3b80d8

bindings/ocaml/transforms/ipo/ipo_ocaml.c
bindings/ocaml/transforms/ipo/llvm_ipo.ml
bindings/ocaml/transforms/ipo/llvm_ipo.mli
test/Bindings/Ocaml/ipo_opts.ml

index 496dc15e8c5163cceda03b3c949e79b14b90133c..4ad8afbc9ccc4117e1073679fb0611751a6e52c2 100644 (file)
@@ -49,6 +49,12 @@ CAMLprim value llvm_add_function_inlining(LLVMPassManagerRef PM) {
   return Val_unit;
 }
 
   return Val_unit;
 }
 
+/* [`Module] Llvm.PassManager.t -> unit */
+CAMLprim value llvm_add_always_inliner(LLVMPassManagerRef PM) {
+  LLVMAddAlwaysInlinerPass(PM);
+  return Val_unit;
+}
+
 /* [`Module] Llvm.PassManager.t -> unit */
 CAMLprim value llvm_add_always_inliner_pass(LLVMPassManagerRef PM) {
   LLVMAddAlwaysInlinerPass(PM);
 /* [`Module] Llvm.PassManager.t -> unit */
 CAMLprim value llvm_add_always_inliner_pass(LLVMPassManagerRef PM) {
   LLVMAddAlwaysInlinerPass(PM);
index e895c7a78957055e60bd452cbbdfe95d33e30b55..93f564a125715d5741e18858ac4b7f5fa14f5c32 100644 (file)
@@ -17,6 +17,8 @@ external add_function_attrs : [ | `Module ] Llvm.PassManager.t -> unit =
   "llvm_add_function_attrs"
 external add_function_inlining : [ | `Module ] Llvm.PassManager.t -> unit =
   "llvm_add_function_inlining"
   "llvm_add_function_attrs"
 external add_function_inlining : [ | `Module ] Llvm.PassManager.t -> unit =
   "llvm_add_function_inlining"
+external add_always_inliner : [ | `Module ] Llvm.PassManager.t -> unit =
+  "llvm_add_always_inliner"
 external add_global_dce : [ | `Module ] Llvm.PassManager.t -> unit =
   "llvm_add_global_dce"
 external add_global_optimizer : [ | `Module ] Llvm.PassManager.t -> unit =
 external add_global_dce : [ | `Module ] Llvm.PassManager.t -> unit =
   "llvm_add_global_dce"
 external add_global_optimizer : [ | `Module ] Llvm.PassManager.t -> unit =
index 68f7c0e6cb81b1df1fb725252a9cda3859c88288..1944c30b06c1b4cde09b11ee23f8b8883965e6d2 100644 (file)
@@ -32,6 +32,10 @@ external add_function_attrs : [ | `Module ] Llvm.PassManager.t -> unit =
 external add_function_inlining : [ | `Module ] Llvm.PassManager.t -> unit =
   "llvm_add_function_inlining"
 
 external add_function_inlining : [ | `Module ] Llvm.PassManager.t -> unit =
   "llvm_add_function_inlining"
 
+(**  See llvm::createAlwaysInlinerPass function. *)
+external add_always_inliner : [ | `Module ] Llvm.PassManager.t -> unit =
+  "llvm_add_always_inliner"
+
 (**  See llvm::createGlobalDCEPass function. *)
 external add_global_dce : [ | `Module ] Llvm.PassManager.t -> unit =
   "llvm_add_global_dce"
 (**  See llvm::createGlobalDCEPass function. *)
 external add_global_dce : [ | `Module ] Llvm.PassManager.t -> unit =
   "llvm_add_global_dce"
index 69577df8cd2ca2fd97f2e10088c467e4d672a7f3..d67a9e004cace476a4b0b92969289adac3c1471f 100644 (file)
@@ -55,6 +55,7 @@ let test_transforms () =
            ++ add_dead_arg_elimination
            ++ add_function_attrs
            ++ add_function_inlining
            ++ add_dead_arg_elimination
            ++ add_function_attrs
            ++ add_function_inlining
+           ++ add_always_inliner
            ++ add_global_dce
            ++ add_global_optimizer
            ++ add_ipc_propagation
            ++ add_global_dce
            ++ add_global_optimizer
            ++ add_ipc_propagation