summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwhitequark <whitequark@whitequark.org>2018-09-18 01:48:01 +0000
committerwhitequark <whitequark@whitequark.org>2018-09-18 01:48:01 +0000
commit1db8dc65ea008b5924be282911b62793af008c2d (patch)
tree2f20b8cb9cd70f661781f4e2e869f995fdefd159
parent02da196c8ce93582b14bbf1b5f6d117f0dca4c8b (diff)
downloadbcm5719-llvm-1db8dc65ea008b5924be282911b62793af008c2d.tar.gz
bcm5719-llvm-1db8dc65ea008b5924be282911b62793af008c2d.zip
[OCaml] Add OCaml API for LLVMIsCleanup
Summary: Expose test for whether or not a landingpad is a cleanup. Reviewers: whitequark Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D52205 llvm-svn: 342438
-rw-r--r--llvm/bindings/ocaml/llvm/llvm.ml1
-rw-r--r--llvm/bindings/ocaml/llvm/llvm.mli4
-rw-r--r--llvm/bindings/ocaml/llvm/llvm_ocaml.c5
3 files changed, 10 insertions, 0 deletions
diff --git a/llvm/bindings/ocaml/llvm/llvm.ml b/llvm/bindings/ocaml/llvm/llvm.ml
index 7f34afcd177..2d2f1ca6aed 100644
--- a/llvm/bindings/ocaml/llvm/llvm.ml
+++ b/llvm/bindings/ocaml/llvm/llvm.ml
@@ -1187,6 +1187,7 @@ external build_invoke : llvalue -> llvalue array -> llbasicblock ->
= "llvm_build_invoke_bc" "llvm_build_invoke_nat"
external build_landingpad : lltype -> llvalue -> int -> string -> llbuilder ->
llvalue = "llvm_build_landingpad"
+external is_cleanup : llvalue -> bool = "llvm_is_cleanup"
external set_cleanup : llvalue -> bool -> unit = "llvm_set_cleanup"
external add_clause : llvalue -> llvalue -> unit = "llvm_add_clause"
external build_resume : llvalue -> llbuilder -> llvalue = "llvm_build_resume"
diff --git a/llvm/bindings/ocaml/llvm/llvm.mli b/llvm/bindings/ocaml/llvm/llvm.mli
index 3404dadeada..caaac36ed18 100644
--- a/llvm/bindings/ocaml/llvm/llvm.mli
+++ b/llvm/bindings/ocaml/llvm/llvm.mli
@@ -2093,6 +2093,10 @@ val build_invoke : llvalue -> llvalue array -> llbasicblock ->
val build_landingpad : lltype -> llvalue -> int -> string -> llbuilder ->
llvalue
+(** [is_cleanup lp] returns [true] if [landingpad] instruction lp is a cleanup.
+ See the method [llvm::LandingPadInst::isCleanup]. *)
+val is_cleanup : llvalue -> bool
+
(** [set_cleanup lp] sets the cleanup flag in the [landingpad]instruction.
See the method [llvm::LandingPadInst::setCleanup]. *)
val set_cleanup : llvalue -> bool -> unit
diff --git a/llvm/bindings/ocaml/llvm/llvm_ocaml.c b/llvm/bindings/ocaml/llvm/llvm_ocaml.c
index b2d27879c31..477da9a0090 100644
--- a/llvm/bindings/ocaml/llvm/llvm_ocaml.c
+++ b/llvm/bindings/ocaml/llvm/llvm_ocaml.c
@@ -1914,6 +1914,11 @@ CAMLprim value llvm_add_clause(LLVMValueRef LandingPadInst, LLVMValueRef ClauseV
return Val_unit;
}
+/* llvalue -> bool */
+CAMLprim value llvm_is_cleanup(LLVMValueRef LandingPadInst)
+{
+ return Val_bool(LLVMIsCleanup(LandingPadInst));
+}
/* llvalue -> bool -> unit */
CAMLprim value llvm_set_cleanup(LLVMValueRef LandingPadInst, value flag)
OpenPOWER on IntegriCloud