diff options
Diffstat (limited to 'bindings/ocaml/llvm/llvm.ml')
-rw-r--r-- | bindings/ocaml/llvm/llvm.ml | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/bindings/ocaml/llvm/llvm.ml b/bindings/ocaml/llvm/llvm.ml index 438663e..a3a614d 100644 --- a/bindings/ocaml/llvm/llvm.ml +++ b/bindings/ocaml/llvm/llvm.ml @@ -64,6 +64,21 @@ module CallConv = struct let x86_fastcall = 65 end +module Attribute = struct + type t = + | Zext + | Sext + | Noreturn + | Inreg + | Structret + | Nounwind + | Noalias + | Byval + | Nest + | Readnone + | Readonly +end + module Icmp = struct type t = | Eq @@ -418,7 +433,10 @@ let rec fold_right_function_range f i e init = let fold_right_functions f m init = fold_right_function_range f (function_end m) (At_start m) init -(* TODO: param attrs *) +external add_function_attr : llvalue -> Attribute.t -> unit + = "llvm_add_function_attr" +external remove_function_attr : llvalue -> Attribute.t -> unit + = "llvm_remove_function_attr" (*--... Operations on params ...............................................--*) external params : llvalue -> llvalue array = "llvm_params" @@ -469,6 +487,13 @@ let rec fold_right_param_range f init i e = let fold_right_params f fn init = fold_right_param_range f init (param_end fn) (At_start fn) +external add_param_attr : llvalue -> Attribute.t -> unit + = "llvm_add_param_attr" +external remove_param_attr : llvalue -> Attribute.t -> unit + = "llvm_remove_param_attr" +external set_param_alignment : llvalue -> int -> unit + = "llvm_set_param_alignment" + (*--... Operations on basic blocks .........................................--*) external value_of_block : llbasicblock -> llvalue = "LLVMBasicBlockAsValue" external value_is_block : llvalue -> bool = "llvm_value_is_block" @@ -586,6 +611,10 @@ external instruction_call_conv: llvalue -> int = "llvm_instruction_call_conv" external set_instruction_call_conv: int -> llvalue -> unit = "llvm_set_instruction_call_conv" +external add_instruction_param_attr : llvalue -> int -> Attribute.t -> unit + = "llvm_add_instruction_param_attr" +external remove_instruction_param_attr : llvalue -> int -> Attribute.t -> unit + = "llvm_remove_instruction_param_attr" (*--... Operations on call instructions (only) .............................--*) external is_tail_call : llvalue -> bool = "llvm_is_tail_call" |