diff options
author | whitequark <whitequark@whitequark.org> | 2018-09-18 01:48:01 +0000 |
---|---|---|
committer | whitequark <whitequark@whitequark.org> | 2018-09-18 01:48:01 +0000 |
commit | 1db8dc65ea008b5924be282911b62793af008c2d (patch) | |
tree | 2f20b8cb9cd70f661781f4e2e869f995fdefd159 | |
parent | 02da196c8ce93582b14bbf1b5f6d117f0dca4c8b (diff) | |
download | bcm5719-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.ml | 1 | ||||
-rw-r--r-- | llvm/bindings/ocaml/llvm/llvm.mli | 4 | ||||
-rw-r--r-- | llvm/bindings/ocaml/llvm/llvm_ocaml.c | 5 |
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) |