summaryrefslogtreecommitdiffstats
path: root/llvm/bindings
diff options
context:
space:
mode:
authorAditya Kumar <hiraditya@msn.com>2019-09-29 16:06:22 +0000
committerAditya Kumar <hiraditya@msn.com>2019-09-29 16:06:22 +0000
commita6d9d31279c83a25d4e4e44047d1349d1aac8d79 (patch)
tree5320a66c0bb49f7ee2aac022d6ad6eef4bdaaf88 /llvm/bindings
parenteb78dea4ccd2e9d3fc11fc753b2a24bb2ba3615d (diff)
downloadbcm5719-llvm-a6d9d31279c83a25d4e4e44047d1349d1aac8d79.tar.gz
bcm5719-llvm-a6d9d31279c83a25d4e4e44047d1349d1aac8d79.zip
[LLVM-C][Ocaml] Add MergeFunctions and DCE pass
MergeFunctions and DCE pass are missing from OCaml/C-api. This patch adds them. Differential Revision: https://reviews.llvm.org/D65071 Reviewers: whitequark, hiraditya, deadalnix Reviewed By: whitequark Subscribers: llvm-commits Tags: #llvm Authored by: kren1 llvm-svn: 373170
Diffstat (limited to 'llvm/bindings')
-rw-r--r--llvm/bindings/ocaml/transforms/ipo/ipo_ocaml.c6
-rw-r--r--llvm/bindings/ocaml/transforms/ipo/llvm_ipo.ml3
-rw-r--r--llvm/bindings/ocaml/transforms/ipo/llvm_ipo.mli5
-rw-r--r--llvm/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.ml3
-rw-r--r--llvm/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli5
-rw-r--r--llvm/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c5
6 files changed, 27 insertions, 0 deletions
diff --git a/llvm/bindings/ocaml/transforms/ipo/ipo_ocaml.c b/llvm/bindings/ocaml/transforms/ipo/ipo_ocaml.c
index e4226d8b370..9fcaa10534f 100644
--- a/llvm/bindings/ocaml/transforms/ipo/ipo_ocaml.c
+++ b/llvm/bindings/ocaml/transforms/ipo/ipo_ocaml.c
@@ -32,6 +32,12 @@ CAMLprim value llvm_add_constant_merge(LLVMPassManagerRef PM) {
}
/* [`Module] Llvm.PassManager.t -> unit */
+CAMLprim value llvm_add_merge_functions(LLVMPassManagerRef PM) {
+ LLVMAddMergeFunctionsPass(PM);
+ return Val_unit;
+}
+
+/* [`Module] Llvm.PassManager.t -> unit */
CAMLprim value llvm_add_dead_arg_elimination(LLVMPassManagerRef PM) {
LLVMAddDeadArgEliminationPass(PM);
return Val_unit;
diff --git a/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.ml b/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.ml
index cc6b0507968..1fb5594fcc7 100644
--- a/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.ml
+++ b/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.ml
@@ -12,6 +12,9 @@ external add_argument_promotion
external add_constant_merge
: [ `Module ] Llvm.PassManager.t -> unit
= "llvm_add_constant_merge"
+external add_merge_functions
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_merge_functions"
external add_dead_arg_elimination
: [ `Module ] Llvm.PassManager.t -> unit
= "llvm_add_dead_arg_elimination"
diff --git a/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.mli b/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.mli
index 4ae988d8e57..6507c5d92c2 100644
--- a/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.mli
+++ b/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.mli
@@ -21,6 +21,11 @@ external add_constant_merge
: [ `Module ] Llvm.PassManager.t -> unit
= "llvm_add_constant_merge"
+(** See the [llvm::createMergeFunctionsPass] function. *)
+external add_merge_functions
+ : [ `Module ] Llvm.PassManager.t -> unit
+ = "llvm_add_merge_functions"
+
(** See the [llvm::createDeadArgEliminationPass] function. *)
external add_dead_arg_elimination
: [ `Module ] Llvm.PassManager.t -> unit
diff --git a/llvm/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.ml b/llvm/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.ml
index 0c99b0f34f7..6864076053b 100644
--- a/llvm/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.ml
+++ b/llvm/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.ml
@@ -9,6 +9,9 @@
external add_aggressive_dce
: [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
= "llvm_add_aggressive_dce"
+external add_dce
+ : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
+ = "llvm_add_dce"
external add_alignment_from_assumptions
: [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
= "llvm_add_alignment_from_assumptions"
diff --git a/llvm/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli b/llvm/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli
index 76d86ddf001..8970431aeab 100644
--- a/llvm/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli
+++ b/llvm/bindings/ocaml/transforms/scalar_opts/llvm_scalar_opts.mli
@@ -16,6 +16,11 @@ external add_aggressive_dce
: [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
= "llvm_add_aggressive_dce"
+(** See the [llvm::createDCEPass] function. *)
+external add_dce
+ : [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
+ = "llvm_add_dce"
+
(** See the [llvm::createAlignmentFromAssumptionsPass] function. *)
external add_alignment_from_assumptions
: [< Llvm.PassManager.any ] Llvm.PassManager.t -> unit
diff --git a/llvm/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c b/llvm/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c
index cb3d50d31fb..56ebbf3c43c 100644
--- a/llvm/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c
+++ b/llvm/bindings/ocaml/transforms/scalar_opts/scalar_opts_ocaml.c
@@ -26,6 +26,11 @@ CAMLprim value llvm_add_aggressive_dce(LLVMPassManagerRef PM) {
return Val_unit;
}
+CAMLprim value llvm_add_dce(LLVMPassManagerRef PM) {
+ LLVMAddDCEPass(PM);
+ return Val_unit;
+}
+
/* [<Llvm.PassManager.any] Llvm.PassManager.t -> unit */
CAMLprim value llvm_add_alignment_from_assumptions(LLVMPassManagerRef PM) {
LLVMAddAlignmentFromAssumptionsPass(PM);
OpenPOWER on IntegriCloud