add binding to read icmp predicate
[oota-llvm.git] / bindings / ocaml / llvm / llvm_ocaml.c
index 14bdbdd068ac6b9e03c1063c0321108020e0ef90..d6849cd193a544da70ecbdae00d734969f4a8729 100644 (file)
@@ -1010,6 +1010,19 @@ DEFINE_ITERATORS(instr, Instruction, LLVMBasicBlockRef, LLVMValueRef,
                  LLVMGetInstructionParent)
 
 
+/* llvalue -> ICmp.t */
+CAMLprim value llvm_instr_icmp_predicate(LLVMValueRef Val) {
+    CAMLparam0();
+    int x = LLVMGetICmpPredicate(Val);
+    if (x) {
+       value Option = alloc(1, 0);
+       Field(Option, 0) = Val_int(x - LLVMIntEQ);
+       CAMLreturn(Option);
+    }
+    CAMLreturn(Val_int(0));
+}
+
+
 /*--... Operations on call sites ...........................................--*/
 
 /* llvalue -> int */