From 1db8dc65ea008b5924be282911b62793af008c2d Mon Sep 17 00:00:00 2001 From: whitequark Date: Tue, 18 Sep 2018 01:48:01 +0000 Subject: [PATCH] [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 --- llvm/bindings/ocaml/llvm/llvm.ml | 1 + llvm/bindings/ocaml/llvm/llvm.mli | 4 ++++ llvm/bindings/ocaml/llvm/llvm_ocaml.c | 5 +++++ 3 files changed, 10 insertions(+) diff --git a/llvm/bindings/ocaml/llvm/llvm.ml b/llvm/bindings/ocaml/llvm/llvm.ml index 7f34afcd1778..2d2f1ca6aedf 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 3404dadeada8..caaac36ed18b 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 b2d27879c316..477da9a00906 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)