aboutsummaryrefslogtreecommitdiffstats
path: root/bindings/ocaml/transforms/ipo
diff options
context:
space:
mode:
Diffstat (limited to 'bindings/ocaml/transforms/ipo')
-rw-r--r--bindings/ocaml/transforms/ipo/Makefile4
-rw-r--r--bindings/ocaml/transforms/ipo/ipo_ocaml.c10
-rw-r--r--bindings/ocaml/transforms/ipo/llvm_ipo.ml70
-rw-r--r--bindings/ocaml/transforms/ipo/llvm_ipo.mli124
4 files changed, 115 insertions, 93 deletions
diff --git a/bindings/ocaml/transforms/ipo/Makefile b/bindings/ocaml/transforms/ipo/Makefile
index ed67a7c..f54bc4e 100644
--- a/bindings/ocaml/transforms/ipo/Makefile
+++ b/bindings/ocaml/transforms/ipo/Makefile
@@ -1,4 +1,4 @@
-##===- bindings/ocaml/transforms/scalar/Makefile -----------*- Makefile -*-===##
+##===- bindings/ocaml/transforms/ipo/Makefile --------------*- Makefile -*-===##
#
# The LLVM Compiler Infrastructure
#
@@ -7,7 +7,7 @@
#
##===----------------------------------------------------------------------===##
#
-# This is the makefile for the Objective Caml Llvm_scalar_opts interface.
+# This is the makefile for the Objective Caml Llvm_ipo interface.
#
##===----------------------------------------------------------------------===##
diff --git a/bindings/ocaml/transforms/ipo/ipo_ocaml.c b/bindings/ocaml/transforms/ipo/ipo_ocaml.c
index 4ad8afb..9d8fb1e 100644
--- a/bindings/ocaml/transforms/ipo/ipo_ocaml.c
+++ b/bindings/ocaml/transforms/ipo/ipo_ocaml.c
@@ -56,12 +56,6 @@ CAMLprim value llvm_add_always_inliner(LLVMPassManagerRef PM) {
}
/* [`Module] Llvm.PassManager.t -> unit */
-CAMLprim value llvm_add_always_inliner_pass(LLVMPassManagerRef PM) {
- LLVMAddAlwaysInlinerPass(PM);
- return Val_unit;
-}
-
-/* [`Module] Llvm.PassManager.t -> unit */
CAMLprim value llvm_add_global_dce(LLVMPassManagerRef PM) {
LLVMAddGlobalDCEPass(PM);
return Val_unit;
@@ -74,7 +68,7 @@ CAMLprim value llvm_add_global_optimizer(LLVMPassManagerRef PM) {
}
/* [`Module] Llvm.PassManager.t -> unit */
-CAMLprim value llvm_add_ipc_propagation(LLVMPassManagerRef PM) {
+CAMLprim value llvm_add_ip_constant_propagation(LLVMPassManagerRef PM) {
LLVMAddIPConstantPropagationPass(PM);
return Val_unit;
}
@@ -91,7 +85,7 @@ CAMLprim value llvm_add_ipsccp(LLVMPassManagerRef PM) {
return Val_unit;
}
-/* [`Module] Llvm.PassManager.t -> bool -> unit */
+/* [`Module] Llvm.PassManager.t -> all_but_main:bool -> unit */
CAMLprim value llvm_add_internalize(LLVMPassManagerRef PM, value AllButMain) {
LLVMAddInternalizePass(PM, Bool_val(AllButMain));
return Val_unit;
diff --git a/bindings/ocaml/transforms/ipo/llvm_ipo.ml b/bindings/ocaml/transforms/ipo/llvm_ipo.ml
index 93f564a..1af7d67 100644
--- a/bindings/ocaml/transforms/ipo/llvm_ipo.ml
+++ b/bindings/ocaml/transforms/ipo/llvm_ipo.ml
@@ -7,31 +7,45 @@
*
*===----------------------------------------------------------------------===*)
-external add_argument_promotion : [ | `Module ] Llvm.PassManager.t -> unit =
- "llvm_add_argument_promotion"
-external add_constant_merge : [ | `Module ] Llvm.PassManager.t -> unit =
- "llvm_add_constant_merge"
-external add_dead_arg_elimination :
- [ | `Module ] Llvm.PassManager.t -> unit = "llvm_add_dead_arg_elimination"
-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"
-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 =
- "llvm_add_global_optimizer"
-external add_ipc_propagation : [ | `Module ] Llvm.PassManager.t -> unit =
- "llvm_add_ipc_propagation"
-external add_prune_eh : [ | `Module ] Llvm.PassManager.t -> unit =
- "llvm_add_prune_eh"
-external add_ipsccp : [ | `Module ] Llvm.PassManager.t -> unit =
- "llvm_add_ipsccp"
-external add_internalize : [ | `Module ] Llvm.PassManager.t -> bool -> unit =
- "llvm_add_internalize"
-external add_strip_dead_prototypes :
- [ | `Module ] Llvm.PassManager.t -> unit = "llvm_add_strip_dead_prototypes"
-external add_strip_symbols : [ | `Module ] Llvm.PassManager.t -> unit =
- "llvm_add_strip_symbols"
+external add_argument_promotion
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_argument_promotion"
+external add_constant_merge
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_constant_merge"
+external add_dead_arg_elimination
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_dead_arg_elimination"
+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"
+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
+ = "llvm_add_global_optimizer"
+external add_ipc_propagation
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_ip_constant_propagation"
+external add_prune_eh
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_prune_eh"
+external add_ipsccp
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_ipsccp"
+external add_internalize
+ : [ `Module ] Llvm.PassManager.t -> all_but_main:bool -> unit
+ = "llvm_add_internalize"
+external add_strip_dead_prototypes
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_strip_dead_prototypes"
+external add_strip_symbols
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_strip_symbols"
diff --git a/bindings/ocaml/transforms/ipo/llvm_ipo.mli b/bindings/ocaml/transforms/ipo/llvm_ipo.mli
index 1944c30..09a4860 100644
--- a/bindings/ocaml/transforms/ipo/llvm_ipo.mli
+++ b/bindings/ocaml/transforms/ipo/llvm_ipo.mli
@@ -12,58 +12,72 @@
This interface provides an OCaml API for LLVM interprocedural optimizations, the
classes in the [LLVMIPO] library. *)
-(** See llvm::createAddArgumentPromotionPass *)
-external add_argument_promotion : [ | `Module ] Llvm.PassManager.t -> unit =
- "llvm_add_argument_promotion"
-
-(** See llvm::createConstantMergePass function. *)
-external add_constant_merge : [ | `Module ] Llvm.PassManager.t -> unit =
- "llvm_add_constant_merge"
-
-(** See llvm::createDeadArgEliminationPass function. *)
-external add_dead_arg_elimination :
- [ | `Module ] Llvm.PassManager.t -> unit = "llvm_add_dead_arg_elimination"
-
-(** See llvm::createFunctionAttrsPass function. *)
-external add_function_attrs : [ | `Module ] Llvm.PassManager.t -> unit =
- "llvm_add_function_attrs"
-
-(** See llvm::createFunctionInliningPass function. *)
-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::createGlobalOptimizerPass function. *)
-external add_global_optimizer : [ | `Module ] Llvm.PassManager.t -> unit =
- "llvm_add_global_optimizer"
-
-(** See llvm::createIPConstantPropagationPass function. *)
-external add_ipc_propagation : [ | `Module ] Llvm.PassManager.t -> unit =
- "llvm_add_ipc_propagation"
-
-(** See llvm::createPruneEHPass function. *)
-external add_prune_eh : [ | `Module ] Llvm.PassManager.t -> unit =
- "llvm_add_prune_eh"
-
-(** See llvm::createIPSCCPPass function. *)
-external add_ipsccp : [ | `Module ] Llvm.PassManager.t -> unit =
- "llvm_add_ipsccp"
-
-(** See llvm::createInternalizePass function. *)
-external add_internalize : [ | `Module ] Llvm.PassManager.t -> bool -> unit =
- "llvm_add_internalize"
-
-(** See llvm::createStripDeadPrototypesPass function. *)
-external add_strip_dead_prototypes :
- [ | `Module ] Llvm.PassManager.t -> unit = "llvm_add_strip_dead_prototypes"
-
-(** See llvm::createStripSymbolsPass function. *)
-external add_strip_symbols : [ | `Module ] Llvm.PassManager.t -> unit =
- "llvm_add_strip_symbols"
+(** See the [llvm::createAddArgumentPromotionPass] function. *)
+external add_argument_promotion
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_argument_promotion"
+
+(** See the [llvm::createConstantMergePass] function. *)
+external add_constant_merge
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_constant_merge"
+
+(** See the [llvm::createDeadArgEliminationPass] function. *)
+external add_dead_arg_elimination
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_dead_arg_elimination"
+
+(** See the [llvm::createFunctionAttrsPass] function. *)
+external add_function_attrs
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_function_attrs"
+
+(** See the [llvm::createFunctionInliningPass] function. *)
+external add_function_inlining
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_function_inlining"
+
+(** See the [llvm::createAlwaysInlinerPass] function. *)
+external add_always_inliner
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_always_inliner"
+
+(** See the [llvm::createGlobalDCEPass] function. *)
+external add_global_dce
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_global_dce"
+
+(** See the [llvm::createGlobalOptimizerPass] function. *)
+external add_global_optimizer
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_global_optimizer"
+
+(** See the [llvm::createIPConstantPropagationPass] function. *)
+external add_ipc_propagation
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_ip_constant_propagation"
+
+(** See the [llvm::createPruneEHPass] function. *)
+external add_prune_eh
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_prune_eh"
+
+(** See the [llvm::createIPSCCPPass] function. *)
+external add_ipsccp
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_ipsccp"
+
+(** See the [llvm::createInternalizePass] function. *)
+external add_internalize
+ : [ `Module ] Llvm.PassManager.t -> all_but_main:bool -> unit
+ = "llvm_add_internalize"
+
+(** See the [llvm::createStripDeadPrototypesPass] function. *)
+external add_strip_dead_prototypes
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_strip_dead_prototypes"
+
+(** See the [llvm::createStripSymbolsPass] function. *)
+external add_strip_symbols
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_strip_symbols"