diff --git a/llvm/bindings/ocaml/llvm/llvm.ml b/llvm/bindings/ocaml/llvm/llvm.ml --- a/llvm/bindings/ocaml/llvm/llvm.ml +++ b/llvm/bindings/ocaml/llvm/llvm.ml @@ -505,11 +505,9 @@ external subtypes : lltype -> lltype array = "llvm_subtypes" external array_type : lltype -> int -> lltype = "llvm_array_type" -external pointer_type : lltype -> lltype = "llvm_pointer_type" -external qualified_pointer_type : lltype -> int -> lltype +external pointer_type : llcontext -> lltype = "llvm_pointer_type" +external qualified_pointer_type : llcontext -> int -> lltype = "llvm_qualified_pointer_type" -external pointer_type_in_context : llcontext -> int -> lltype - = "llvm_pointer_type_in_context" external vector_type : lltype -> int -> lltype = "llvm_vector_type" external element_type : lltype -> lltype = "LLVMGetElementType" @@ -659,9 +657,8 @@ external const_shl : llvalue -> llvalue -> llvalue = "LLVMConstShl" external const_lshr : llvalue -> llvalue -> llvalue = "LLVMConstLShr" external const_ashr : llvalue -> llvalue -> llvalue = "LLVMConstAShr" -external const_gep : llvalue -> llvalue array -> llvalue = "llvm_const_gep" -external const_gep2 : lltype -> llvalue -> llvalue array -> llvalue - = "llvm_const_gep2" +external const_gep : lltype -> llvalue -> llvalue array -> llvalue + = "llvm_const_gep" external const_in_bounds_gep : llvalue -> llvalue array -> llvalue = "llvm_const_in_bounds_gep" external const_trunc : llvalue -> lltype -> llvalue = "LLVMConstTrunc" @@ -798,12 +795,9 @@ fold_right_global_range f (global_end m) (At_start m) init (*--... Operations on aliases ..............................................--*) -external add_alias : llmodule -> lltype -> llvalue -> string -> llvalue +external add_alias : llmodule -> lltype -> int -> llvalue -> string -> llvalue = "llvm_add_alias" -external add_alias2 : llmodule -> lltype -> int -> llvalue -> string -> llvalue - = "llvm_add_alias2" - (*--... Operations on functions ............................................--*) external declare_function : string -> lltype -> llmodule -> llvalue = "llvm_declare_function" @@ -1212,12 +1206,9 @@ = "llvm_build_indirect_br" external add_destination : llvalue -> llbasicblock -> unit = "llvm_add_destination" -external build_invoke : llvalue -> llvalue array -> llbasicblock -> +external build_invoke : lltype -> llvalue -> llvalue array -> llbasicblock -> llbasicblock -> string -> llbuilder -> llvalue = "llvm_build_invoke_bc" "llvm_build_invoke_nat" -external build_invoke2 : lltype -> llvalue -> llvalue array -> llbasicblock -> - llbasicblock -> string -> llbuilder -> llvalue - = "llvm_build_invoke2_bc" "llvm_build_invoke2_nat" external build_landingpad : lltype -> llvalue -> int -> string -> llbuilder -> llvalue = "llvm_build_landingpad" external is_cleanup : llvalue -> bool = "llvm_is_cleanup" @@ -1293,10 +1284,8 @@ = "llvm_build_alloca" external build_array_alloca : lltype -> llvalue -> string -> llbuilder -> llvalue = "llvm_build_array_alloca" -external build_load : llvalue -> string -> llbuilder -> llvalue +external build_load : lltype -> llvalue -> string -> llbuilder -> llvalue = "llvm_build_load" -external build_load2 : lltype -> llvalue -> string -> llbuilder -> llvalue - = "llvm_build_load2" external build_store : llvalue -> llvalue -> llbuilder -> llvalue = "llvm_build_store" external build_atomicrmw : AtomicRMWBinOp.t -> llvalue -> llvalue -> @@ -1304,18 +1293,12 @@ llvalue = "llvm_build_atomicrmw_bytecode" "llvm_build_atomicrmw_native" -external build_gep : llvalue -> llvalue array -> string -> llbuilder -> llvalue - = "llvm_build_gep" -external build_gep2 : lltype -> llvalue -> llvalue array -> string -> llbuilder - -> llvalue = "llvm_build_gep2" -external build_in_bounds_gep : llvalue -> llvalue array -> string -> +external build_gep : lltype -> llvalue -> llvalue array -> string -> llbuilder + -> llvalue = "llvm_build_gep" +external build_in_bounds_gep : lltype -> llvalue -> llvalue array -> string -> llbuilder -> llvalue = "llvm_build_in_bounds_gep" -external build_in_bounds_gep2 : lltype -> llvalue -> llvalue array -> string -> - llbuilder -> llvalue = "llvm_build_in_bounds_gep2" -external build_struct_gep : llvalue -> int -> string -> llbuilder -> llvalue - = "llvm_build_struct_gep" -external build_struct_gep2 : lltype -> llvalue -> int -> string -> llbuilder -> - llvalue = "llvm_build_struct_gep2" +external build_struct_gep : lltype -> llvalue -> int -> string -> llbuilder -> + llvalue = "llvm_build_struct_gep" external build_global_string : string -> string -> llbuilder -> llvalue = "llvm_build_global_string" @@ -1371,10 +1354,8 @@ llvalue = "llvm_build_phi" external build_empty_phi : lltype -> string -> llbuilder -> llvalue = "llvm_build_empty_phi" -external build_call : llvalue -> llvalue array -> string -> llbuilder -> llvalue - = "llvm_build_call" -external build_call2 : lltype -> llvalue -> llvalue array -> string -> - llbuilder -> llvalue = "llvm_build_call2" +external build_call : lltype -> llvalue -> llvalue array -> string -> + llbuilder -> llvalue = "llvm_build_call" external build_select : llvalue -> llvalue -> llvalue -> string -> llbuilder -> llvalue = "llvm_build_select" external build_va_arg : llvalue -> lltype -> string -> llbuilder -> llvalue @@ -1394,10 +1375,8 @@ = "llvm_build_is_null" external build_is_not_null : llvalue -> string -> llbuilder -> llvalue = "llvm_build_is_not_null" -external build_ptrdiff : llvalue -> llvalue -> string -> llbuilder -> llvalue - = "llvm_build_ptrdiff" -external build_ptrdiff2 : lltype -> llvalue -> llvalue -> string -> llbuilder -> - llvalue = "llvm_build_ptrdiff2" +external build_ptrdiff : lltype -> llvalue -> llvalue -> string -> llbuilder -> + llvalue = "llvm_build_ptrdiff" external build_freeze : llvalue -> string -> llbuilder -> llvalue = "llvm_build_freeze" diff --git a/llvm/bindings/ocaml/llvm/llvm.mli b/llvm/bindings/ocaml/llvm/llvm.mli --- a/llvm/bindings/ocaml/llvm/llvm.mli +++ b/llvm/bindings/ocaml/llvm/llvm.mli @@ -716,20 +716,15 @@ [ty]. See the method [llvm::ArrayType::get]. *) val array_type : lltype -> int -> lltype -(** [pointer_type ty] returns the pointer type referencing objects of type - [ty] in the default address space (0). +(** [pointer_type context] returns the pointer type in the default + address space (0). See the method [llvm::PointerType::getUnqual]. *) -val pointer_type : lltype -> lltype +val pointer_type : llcontext -> lltype -(** [qualified_pointer_type ty as] returns the pointer type referencing objects - of type [ty] in address space [as]. +(** [qualified_pointer_type context sp] returns the pointer type referencing + objects in address space [sp]. See the method [llvm::PointerType::get]. *) -val qualified_pointer_type : lltype -> int -> lltype - -(** [pointer_type_in_context context as] returns the opaque pointer type - referencing objects in address space [as]. - See the method [llvm::PointerType::get]. *) -val pointer_type_in_context : llcontext -> int -> lltype +val qualified_pointer_type : llcontext -> int -> lltype (** [vector_type ty n] returns the array type containing [n] elements of the primitive type [ty]. See the method [llvm::ArrayType::get]. *) @@ -1168,16 +1163,11 @@ See the method [llvm::ConstantExpr::getAShr]. *) val const_ashr : llvalue -> llvalue -> llvalue -(** [const_gep pc indices] returns the constant [getElementPtr] of [pc] with the - constant integers indices from the array [indices]. - See the method [llvm::ConstantExpr::getGetElementPtr]. *) -val const_gep : llvalue -> llvalue array -> llvalue - -(** [const_gep2 srcty pc indices] returns the constant [getElementPtr] of [pc] +(** [const_gep srcty pc indices] returns the constant [getElementPtr] of [pc] with source element type [srcty] and the constant integers indices from the array [indices]. See the method [llvm::ConstantExpr::getGetElementPtr]. *) -val const_gep2 : lltype -> llvalue -> llvalue array -> llvalue +val const_gep : lltype -> llvalue -> llvalue array -> llvalue (** [const_in_bounds_gep pc indices] returns the constant [getElementPtr] of [pc] with the constant integers indices from the array [indices]. @@ -1509,15 +1499,10 @@ (** {7 Operations on aliases} *) -(** [add_alias m t a n] inserts an alias in the module [m] with the type [t] and - the aliasee [a] with the name [n]. +(** [add_alias m vt sp a n] inserts an alias in the module [m] with the value + type [vt] the address space [sp] the aliasee [a] with the name [n]. See the constructor for [llvm::GlobalAlias]. *) -val add_alias : llmodule -> lltype -> llvalue -> string -> llvalue - -(** [add_alias m vt as a n] inserts an alias in the module [m] with the value - type [vt] the address space [as] the aliasee [a] with the name [n]. - See the constructor for [llvm::GlobalAlias]. *) -val add_alias2 : llmodule -> lltype -> int -> llvalue -> string -> llvalue +val add_alias : llmodule -> lltype -> int -> llvalue -> string -> llvalue (** {7 Operations on functions} *) @@ -2097,19 +2082,12 @@ See the method [llvm::IndirectBrInst::addDestination]. **) val add_destination : llvalue -> llbasicblock -> unit -(** [build_invoke fn args tobb unwindbb name b] creates an +(** [build_invoke fnty fn args tobb unwindbb name b] creates an [%name = invoke %fn(args) to %tobb unwind %unwindbb] instruction at the position specified by the instruction builder [b]. See the method [llvm::LLVMBuilder::CreateInvoke]. *) -val build_invoke : llvalue -> llvalue array -> llbasicblock -> - llbasicblock -> string -> llbuilder -> llvalue - -(** [build_invoke2 fnty fn args tobb unwindbb name b] creates an - [%name = invoke %fn(args) to %tobb unwind %unwindbb] - instruction at the position specified by the instruction builder [b]. - See the method [llvm::LLVMBuilder::CreateInvoke]. *) -val build_invoke2 : lltype -> llvalue -> llvalue array -> llbasicblock -> - llbasicblock -> string -> llbuilder -> llvalue +val build_invoke : lltype -> llvalue -> llvalue array -> llbasicblock -> + llbasicblock -> string -> llbuilder -> llvalue (** [build_landingpad ty persfn numclauses name b] creates an [landingpad] @@ -2345,17 +2323,11 @@ val build_array_alloca : lltype -> llvalue -> string -> llbuilder -> llvalue -(** [build_load v name b] creates a - [%name = load %v] - instruction at the position specified by the instruction builder [b]. - See the method [llvm::LLVMBuilder::CreateLoad]. *) -val build_load : llvalue -> string -> llbuilder -> llvalue - -(** [build_load2 ty v name b] creates a +(** [build_load ty v name b] creates a [%name = load %ty, %v] instruction at the position specified by the instruction builder [b]. See the method [llvm::LLVMBuilder::CreateLoad]. *) -val build_load2 : lltype -> llvalue -> string -> llbuilder -> llvalue +val build_load : lltype -> llvalue -> string -> llbuilder -> llvalue (** [build_store v p b] creates a [store %v, %p] @@ -2371,46 +2343,26 @@ val build_atomicrmw : AtomicRMWBinOp.t -> llvalue -> llvalue -> AtomicOrdering.t -> bool -> string -> llbuilder -> llvalue -(** [build_gep p indices name b] creates a - [%name = getelementptr %p, indices...] - instruction at the position specified by the instruction builder [b]. - See the method [llvm::LLVMBuilder::CreateGetElementPtr]. *) -val build_gep : llvalue -> llvalue array -> string -> llbuilder -> llvalue - -(** [build_gep2 srcty p indices name b] creates a +(** [build_gep srcty p indices name b] creates a [%name = getelementptr srcty, %p, indices...] instruction at the position specified by the instruction builder [b]. See the method [llvm::LLVMBuilder::CreateGetElementPtr]. *) -val build_gep2 : lltype -> llvalue -> llvalue array -> string -> llbuilder -> - llvalue +val build_gep : lltype -> llvalue -> llvalue array -> string -> llbuilder -> + llvalue -(** [build_in_bounds_gep p indices name b] creates a - [%name = gelementptr inbounds %p, indices...] - instruction at the position specified by the instruction builder [b]. - See the method [llvm::LLVMBuilder::CreateInBoundsGetElementPtr]. *) -val build_in_bounds_gep : llvalue -> llvalue array -> string -> llbuilder -> - llvalue - -(** [build_in_bounds_gep2 srcty p indices name b] creates a +(** [build_in_bounds_gep srcty p indices name b] creates a [%name = gelementptr inbounds srcty, %p, indices...] instruction at the position specified by the instruction builder [b]. See the method [llvm::LLVMBuilder::CreateInBoundsGetElementPtr]. *) -val build_in_bounds_gep2 : lltype -> llvalue -> llvalue array -> string -> - llbuilder -> llvalue - -(** [build_struct_gep p idx name b] creates a - [%name = getelementptr %p, 0, idx] - instruction at the position specified by the instruction builder [b]. - See the method [llvm::LLVMBuilder::CreateStructGetElementPtr]. *) -val build_struct_gep : llvalue -> int -> string -> llbuilder -> - llvalue +val build_in_bounds_gep : lltype -> llvalue -> llvalue array -> string -> + llbuilder -> llvalue -(** [build_struct_gep2 srcty p idx name b] creates a +(** [build_struct_gep srcty p idx name b] creates a [%name = getelementptr srcty, %p, 0, idx] instruction at the position specified by the instruction builder [b]. See the method [llvm::LLVMBuilder::CreateStructGetElementPtr]. *) -val build_struct_gep2 : lltype -> llvalue -> int -> string -> llbuilder -> - llvalue +val build_struct_gep : lltype -> llvalue -> int -> string -> llbuilder -> + llvalue (** [build_global_string str name b] creates a series of instructions that adds a global string at the position specified by the instruction builder [b]. @@ -2565,18 +2517,12 @@ See the method [llvm::LLVMBuilder::CreatePHI]. *) val build_empty_phi : lltype -> string -> llbuilder -> llvalue -(** [build_call fn args name b] creates a - [%name = call %fn(args...)] - instruction at the position specified by the instruction builder [b]. - See the method [llvm::LLVMBuilder::CreateCall]. *) -val build_call : llvalue -> llvalue array -> string -> llbuilder -> llvalue - -(** [build_call2 fnty fn args name b] creates a +(** [build_call fnty fn args name b] creates a [%name = call %fn(args...)] instruction at the position specified by the instruction builder [b]. See the method [llvm::LLVMBuilder::CreateCall]. *) -val build_call2 : lltype -> llvalue -> llvalue array -> string -> llbuilder -> - llvalue +val build_call : lltype -> llvalue -> llvalue array -> string -> llbuilder -> + llvalue (** [build_select cond thenv elsev name b] creates a [%name = select %cond, %thenv, %elsev] @@ -2638,18 +2584,12 @@ See the method [llvm::LLVMBuilder::CreateIsNotNull]. *) val build_is_not_null : llvalue -> string -> llbuilder -> llvalue -(** [build_ptrdiff lhs rhs name b] creates a series of instructions that measure - the difference between two pointer values at the position specified by the - instruction builder [b]. - See the method [llvm::LLVMBuilder::CreatePtrDiff]. *) -val build_ptrdiff : llvalue -> llvalue -> string -> llbuilder -> llvalue - -(** [build_ptrdiff2 elemty lhs rhs name b] creates a series of instructions +(** [build_ptrdiff elemty lhs rhs name b] creates a series of instructions that measure the difference between two pointer values in multiples of [elemty] at the position specified by the instruction builder [b]. See the method [llvm::LLVMBuilder::CreatePtrDiff]. *) -val build_ptrdiff2 : lltype -> llvalue -> llvalue -> string -> llbuilder -> - llvalue +val build_ptrdiff : lltype -> llvalue -> llvalue -> string -> llbuilder -> + llvalue (** [build_freeze x name b] creates a [%name = freeze %x] diff --git a/llvm/bindings/ocaml/llvm/llvm_ocaml.c b/llvm/bindings/ocaml/llvm/llvm_ocaml.c --- a/llvm/bindings/ocaml/llvm/llvm_ocaml.c +++ b/llvm/bindings/ocaml/llvm/llvm_ocaml.c @@ -570,19 +570,13 @@ return LLVMArrayType(ElementTy, Int_val(Count)); } -/* lltype -> lltype */ -LLVMTypeRef llvm_pointer_type(LLVMTypeRef ElementTy) { - return LLVMPointerType(ElementTy, 0); -} - -/* lltype -> int -> lltype */ -LLVMTypeRef llvm_qualified_pointer_type(LLVMTypeRef ElementTy, - value AddressSpace) { - return LLVMPointerType(ElementTy, Int_val(AddressSpace)); +/* llcontext -> lltype */ +LLVMTypeRef llvm_pointer_type(LLVMContextRef C, value AddressSpace) { + return LLVMPointerTypeInContext(C, 0); } /* llcontext -> int -> lltype */ -LLVMTypeRef llvm_pointer_type_in_context(LLVMContextRef C, value AddressSpace) { +LLVMTypeRef llvm_qualified_pointer_type(LLVMContextRef C, value AddressSpace) { return LLVMPointerTypeInContext(C, Int_val(AddressSpace)); } @@ -993,14 +987,8 @@ return LLVMConstFCmp(Int_val(Pred), LHSConstant, RHSConstant); } -/* llvalue -> llvalue array -> llvalue */ -LLVMValueRef llvm_const_gep(LLVMValueRef ConstantVal, value Indices) { - return LLVMConstGEP(ConstantVal, (LLVMValueRef *)Op_val(Indices), - Wosize_val(Indices)); -} - /* lltype -> llvalue -> llvalue array -> llvalue */ -LLVMValueRef llvm_const_gep2(LLVMTypeRef Ty, LLVMValueRef ConstantVal, +LLVMValueRef llvm_const_gep(LLVMTypeRef Ty, LLVMValueRef ConstantVal, value Indices) { return LLVMConstGEP2(Ty, ConstantVal, (LLVMValueRef *)Op_val(Indices), Wosize_val(Indices)); @@ -1257,12 +1245,7 @@ /*--... Operations on aliases ..............................................--*/ -LLVMValueRef llvm_add_alias(LLVMModuleRef M, LLVMTypeRef Ty, - LLVMValueRef Aliasee, value Name) { - return LLVMAddAlias(M, Ty, Aliasee, String_val(Name)); -} - -LLVMValueRef llvm_add_alias2(LLVMModuleRef M, LLVMTypeRef ValueTy, +LLVMValueRef llvm_add_alias(LLVMModuleRef M, LLVMTypeRef ValueTy, value AddrSpace, LLVMValueRef Aliasee, value Name) { return LLVMAddAlias2(M, ValueTy, Int_val(AddrSpace), Aliasee, String_val(Name)); @@ -1764,30 +1747,12 @@ return Val_unit; } -/* llvalue -> llvalue array -> llbasicblock -> llbasicblock -> string -> - llbuilder -> llvalue */ -LLVMValueRef llvm_build_invoke_nat(LLVMValueRef Fn, value Args, - LLVMBasicBlockRef Then, - LLVMBasicBlockRef Catch, value Name, - value B) { - return LLVMBuildInvoke(Builder_val(B), Fn, (LLVMValueRef *)Op_val(Args), - Wosize_val(Args), Then, Catch, String_val(Name)); -} - -/* llvalue -> llvalue array -> llbasicblock -> llbasicblock -> string -> - llbuilder -> llvalue */ -LLVMValueRef llvm_build_invoke_bc(value Args[], int NumArgs) { - return llvm_build_invoke_nat((LLVMValueRef)Args[0], Args[1], - (LLVMBasicBlockRef)Args[2], - (LLVMBasicBlockRef)Args[3], Args[4], Args[5]); -} - /* lltype -> llvalue -> llvalue array -> llbasicblock -> llbasicblock -> string -> llbuilder -> llvalue */ -LLVMValueRef llvm_build_invoke2_nat(LLVMTypeRef FnTy, LLVMValueRef Fn, - value Args, LLVMBasicBlockRef Then, - LLVMBasicBlockRef Catch, value Name, - value B) { +LLVMValueRef llvm_build_invoke_nat(LLVMTypeRef FnTy, LLVMValueRef Fn, + value Args, LLVMBasicBlockRef Then, + LLVMBasicBlockRef Catch, value Name, + value B) { return LLVMBuildInvoke2(Builder_val(B), FnTy, Fn, (LLVMValueRef *)Op_val(Args), Wosize_val(Args), Then, Catch, String_val(Name)); @@ -1795,9 +1760,9 @@ /* lltype -> llvalue -> llvalue array -> llbasicblock -> llbasicblock -> string -> llbuilder -> llvalue */ -LLVMValueRef llvm_build_invoke2_bc(value Args[], int NumArgs) { - return llvm_build_invoke2_nat((LLVMTypeRef)Args[0], (LLVMValueRef)Args[1], - Args[2], (LLVMBasicBlockRef)Args[3], +LLVMValueRef llvm_build_invoke_bc(value Args[], int NumArgs) { + return llvm_build_invoke_nat((LLVMTypeRef)Args[0], (LLVMValueRef)Args[1], + Args[2], (LLVMBasicBlockRef)Args[3], (LLVMBasicBlockRef)Args[4], Args[5], Args[6]); } @@ -2025,14 +1990,9 @@ return LLVMBuildArrayAlloca(Builder_val(B), Ty, Size, String_val(Name)); } -/* llvalue -> string -> llbuilder -> llvalue */ -LLVMValueRef llvm_build_load(LLVMValueRef Pointer, value Name, value B) { - return LLVMBuildLoad(Builder_val(B), Pointer, String_val(Name)); -} - /* lltype -> llvalue -> string -> llbuilder -> llvalue */ -LLVMValueRef llvm_build_load2(LLVMTypeRef Ty, LLVMValueRef Pointer, value Name, - value B) { +LLVMValueRef llvm_build_load(LLVMTypeRef Ty, LLVMValueRef Pointer, value Name, + value B) { return LLVMBuildLoad2(Builder_val(B), Ty, Pointer, String_val(Name)); } @@ -2060,47 +2020,25 @@ argv[5], argv[6]); } -/* llvalue -> llvalue array -> string -> llbuilder -> llvalue */ -LLVMValueRef llvm_build_gep(LLVMValueRef Pointer, value Indices, value Name, - value B) { - return LLVMBuildGEP(Builder_val(B), Pointer, (LLVMValueRef *)Op_val(Indices), - Wosize_val(Indices), String_val(Name)); -} - /* lltype -> llvalue -> llvalue array -> string -> llbuilder -> llvalue */ -LLVMValueRef llvm_build_gep2(LLVMTypeRef Ty, LLVMValueRef Pointer, - value Indices, value Name, value B) { +LLVMValueRef llvm_build_gep(LLVMTypeRef Ty, LLVMValueRef Pointer, value Indices, + value Name, value B) { return LLVMBuildGEP2(Builder_val(B), Ty, Pointer, (LLVMValueRef *)Op_val(Indices), Wosize_val(Indices), String_val(Name)); } -/* llvalue -> llvalue array -> string -> llbuilder -> llvalue */ -LLVMValueRef llvm_build_in_bounds_gep(LLVMValueRef Pointer, value Indices, - value Name, value B) { - return LLVMBuildInBoundsGEP(Builder_val(B), Pointer, - (LLVMValueRef *)Op_val(Indices), - Wosize_val(Indices), String_val(Name)); -} - /* lltype -> llvalue -> llvalue array -> string -> llbuilder -> llvalue */ -LLVMValueRef llvm_build_in_bounds_gep2(LLVMTypeRef Ty, LLVMValueRef Pointer, - value Indices, value Name, value B) { +LLVMValueRef llvm_build_in_bounds_gep(LLVMTypeRef Ty, LLVMValueRef Pointer, + value Indices, value Name, value B) { return LLVMBuildInBoundsGEP2(Builder_val(B), Ty, Pointer, (LLVMValueRef *)Op_val(Indices), Wosize_val(Indices), String_val(Name)); } -/* llvalue -> int -> string -> llbuilder -> llvalue */ -LLVMValueRef llvm_build_struct_gep(LLVMValueRef Pointer, value Index, - value Name, value B) { - return LLVMBuildStructGEP(Builder_val(B), Pointer, Int_val(Index), - String_val(Name)); -} - /* lltype -> llvalue -> int -> string -> llbuilder -> llvalue */ -LLVMValueRef llvm_build_struct_gep2(LLVMTypeRef Ty, LLVMValueRef Pointer, - value Index, value Name, value B) { +LLVMValueRef llvm_build_struct_gep(LLVMTypeRef Ty, LLVMValueRef Pointer, + value Index, value Name, value B) { return LLVMBuildStructGEP2(Builder_val(B), Ty, Pointer, Int_val(Index), String_val(Name)); } @@ -2271,16 +2209,9 @@ return LLVMBuildPhi(Builder_val(B), Type, String_val(Name)); } -/* llvalue -> llvalue array -> string -> llbuilder -> llvalue */ -LLVMValueRef llvm_build_call(LLVMValueRef Fn, value Params, value Name, - value B) { - return LLVMBuildCall(Builder_val(B), Fn, (LLVMValueRef *)Op_val(Params), - Wosize_val(Params), String_val(Name)); -} - /* lltype -> llvalue -> llvalue array -> string -> llbuilder -> llvalue */ -LLVMValueRef llvm_build_call2(LLVMTypeRef FnTy, LLVMValueRef Fn, value Params, - value Name, value B) { +LLVMValueRef llvm_build_call(LLVMTypeRef FnTy, LLVMValueRef Fn, value Params, + value Name, value B) { return LLVMBuildCall2(Builder_val(B), FnTy, Fn, (LLVMValueRef *)Op_val(Params), Wosize_val(Params), String_val(Name)); @@ -2342,14 +2273,8 @@ } /* llvalue -> llvalue -> string -> llbuilder -> llvalue */ -LLVMValueRef llvm_build_ptrdiff(LLVMValueRef LHS, LLVMValueRef RHS, value Name, - value B) { - return LLVMBuildPtrDiff(Builder_val(B), LHS, RHS, String_val(Name)); -} - -/* llvalue -> llvalue -> string -> llbuilder -> llvalue */ -LLVMValueRef llvm_build_ptrdiff2(LLVMTypeRef ElemTy, LLVMValueRef LHS, - LLVMValueRef RHS, value Name, value B) { +LLVMValueRef llvm_build_ptrdiff(LLVMTypeRef ElemTy, LLVMValueRef LHS, + LLVMValueRef RHS, value Name, value B) { return LLVMBuildPtrDiff2(Builder_val(B), ElemTy, LHS, RHS, String_val(Name)); } diff --git a/llvm/test/Bindings/OCaml/core.ml b/llvm/test/Bindings/OCaml/core.ml --- a/llvm/test/Bindings/OCaml/core.ml +++ b/llvm/test/Bindings/OCaml/core.ml @@ -43,8 +43,9 @@ (*===-- Pointer types ----------------------------------------------------===*) let test_pointer_types () = - insist (address_space (pointer_type_in_context context 0) = 0); - insist (address_space (pointer_type_in_context context 1) = 1) + insist (address_space (pointer_type context) = 0); + insist (address_space (qualified_pointer_type context 0) = 0); + insist (address_space (qualified_pointer_type context 1) = 1) (*===-- Conversion --------------------------------------------------------===*) @@ -219,7 +220,7 @@ group "pointer null"; begin (* CHECK: const_pointer_null = global ptr null *) - let c = const_pointer_null (pointer_type i64_type) in + let c = const_pointer_null (pointer_type context) in ignore (define_global "const_pointer_null" c m); end; @@ -259,7 +260,7 @@ * CHECK: @const_icmp = global i1 icmp sle * CHECK: @const_fcmp = global i1 fcmp ole *) - let void_ptr = pointer_type i8_type in + let void_ptr = pointer_type context in let five = const_int i64_type 5 in let ffive = const_uitofp five double_type in let foldbomb_gv = define_global "FoldBomb" (const_null i8_type) m in @@ -311,8 +312,8 @@ ignore (define_global "const_fptoui" (const_fptoui ffoldbomb i32_type) m); ignore (define_global "const_fptosi" (const_fptosi ffoldbomb i32_type) m); ignore (define_global "const_ptrtoint" (const_ptrtoint - (const_gep2 i8_type (const_null (pointer_type i8_type)) - [| const_int i32_type 1 |]) + (const_gep i8_type (const_null (pointer_type context)) + [| const_int i32_type 1 |]) i32_type) m); ignore (define_global "const_inttoptr" (const_inttoptr (const_add foldbomb five) void_ptr) m); @@ -328,8 +329,8 @@ * CHECK: const_insertelement{{.*}}insertelement * CHECK: const_shufflevector = global <4 x i32> *) - ignore (define_global "const_size_of" (size_of (pointer_type i8_type)) m); - ignore (define_global "const_gep" (const_gep2 i8_type foldbomb_gv [| five |]) + ignore (define_global "const_size_of" (size_of (pointer_type context)) m); + ignore (define_global "const_gep" (const_gep i8_type foldbomb_gv [| five |]) m); ignore (define_global "const_select" (const_select (const_icmp Icmp.Sle foldbomb five) @@ -361,7 +362,7 @@ group "recursive struct"; begin let nsty = named_struct_type context "rec" in - let pty = pointer_type nsty in + let pty = pointer_type context in struct_set_body nsty [| i32_type; pty |] false; let elts = [| const_int i32_type 4; const_pointer_null pty |] in let grec_init = const_named_struct nsty elts in @@ -469,7 +470,7 @@ insist (None == lookup_global "GVar01" m); let g = declare_global i32_type "GVar01" m in insist (is_declaration g); - insist (pointer_type float_type == + insist (pointer_type context == type_of (declare_global float_type "GVar01" m)); insist (g == declare_global i32_type "GVar01" m); insist (match lookup_global "GVar01" m with Some x -> x = g @@ -478,7 +479,7 @@ insist (None == lookup_global "QGVar01" m); let g = declare_qualified_global i32_type "QGVar01" 3 m in insist (is_declaration g); - insist (qualified_pointer_type float_type 3 == + insist (qualified_pointer_type context 3 == type_of (declare_qualified_global float_type "QGVar01" 3 m)); insist (g == declare_qualified_global i32_type "QGVar01" 3 m); insist (match lookup_global "QGVar01" m with Some x -> x = g @@ -613,7 +614,7 @@ let p1 = param fn 0 in let p2 = param fn 1 in let a3 = build_alloca i32_type "user_alloca" b in - let p3 = build_load2 i32_type a3 "user_load" b in + let p3 = build_load i32_type a3 "user_load" b in let i = build_add p1 p2 "sum" b in insist ((num_operands i) = 2); @@ -634,7 +635,7 @@ *) let forty_two32 = const_int i32_type 42 in let v = define_global "aliasee" forty_two32 m in - ignore (add_alias2 m i32_type 0 v "alias") + ignore (add_alias m i32_type 0 v "alias") (*===-- Functions ---------------------------------------------------------===*) @@ -648,10 +649,10 @@ begin group "declare"; insist (None = lookup_function "Fn1" m); let fn = declare_function "Fn1" ty m in - insist (pointer_type ty = type_of fn); + insist (pointer_type context = type_of fn); insist (is_declaration fn); insist (0 = Array.length (basic_blocks fn)); - insist (pointer_type ty2 == type_of (declare_function "Fn1" ty2 m)); + insist (pointer_type context == type_of (declare_function "Fn1" ty2 m)); insist (fn == declare_function "Fn1" ty m); insist (None <> lookup_function "Fn1" m); insist (match lookup_function "Fn1" m with Some x -> x = fn @@ -982,7 +983,7 @@ end; group "casts"; begin - let void_ptr = pointer_type i8_type in + let void_ptr = pointer_type context in (* CHECK-DAG: %build_trunc = trunc i32 %P1 to i8 * CHECK-DAG: %build_trunc2 = trunc i32 %P1 to i8 @@ -1023,7 +1024,7 @@ ignore(build_zext_or_bitcast inst38 double_type "build_bitcast2" atentry); ignore(build_sext_or_bitcast inst38 double_type "build_bitcast3" atentry); ignore(build_trunc_or_bitcast inst38 double_type "build_bitcast4" atentry); - ignore(build_pointercast inst37 (pointer_type i16_type) "build_pointercast" atentry); + ignore(build_pointercast inst37 (pointer_type context) "build_pointercast" atentry); ignore(build_zext_or_bitcast inst28 i32_type "build_zext2" atentry); ignore(build_sext_or_bitcast inst29 i64_type "build_sext2" atentry); @@ -1060,13 +1061,13 @@ (* insist (Some Fcmp.True = fcmp_predicate c); *) insist (None = icmp_predicate c); - let g0 = declare_global (pointer_type i8_type) "g0" m in - let g1 = declare_global (pointer_type i8_type) "g1" m in - let p0 = build_load2 (pointer_type i8_type) g0 "X0" atentry in - let p1 = build_load2 (pointer_type i8_type) g1 "X1" atentry in + let g0 = declare_global (pointer_type context) "g0" m in + let g1 = declare_global (pointer_type context) "g1" m in + let p0 = build_load (pointer_type context) g0 "X0" atentry in + let p1 = build_load (pointer_type context) g1 "X1" atentry in ignore (build_is_null p0 "build_is_null" atentry); ignore (build_is_not_null p1 "build_is_not_null" atentry); - ignore (build_ptrdiff2 i8_type p1 p0 "build_ptrdiff" atentry); + ignore (build_ptrdiff i8_type p1 p0 "build_ptrdiff" atentry); end; group "miscellaneous"; begin @@ -1079,7 +1080,7 @@ * CHECK: %build_insertvalue0 = insertvalue{{.*}}%bl, i32 1, 0 * CHECK: %build_extractvalue = extractvalue{{.*}}%build_insertvalue1, 1 *) - let ci = build_call2 fty fn [| p2; p1 |] "build_call" atentry in + let ci = build_call fty fn [| p2; p1 |] "build_call" atentry in insist (CallConv.c = instruction_call_conv ci); set_instruction_call_conv 63 ci; insist (63 = instruction_call_conv ci); @@ -1107,7 +1108,7 @@ let inst46 = build_icmp Icmp.Eq p1 p2 "build_icmp" atentry in ignore (build_select inst46 p1 p2 "build_select" atentry); ignore (build_va_arg - (const_null (pointer_type (pointer_type i8_type))) + (const_null (pointer_type context)) i32_type "build_va_arg" atentry); (* Set up some vector vregs. *) @@ -1125,7 +1126,7 @@ ignore (build_shufflevector vec1 vec2 t3 "build_shufflevector" atentry); let p = build_alloca sty "ba" atentry in - let agg = build_load2 sty p "bl" atentry in + let agg = build_load sty p "bl" atentry in let agg0 = build_insertvalue agg (const_int i32_type 1) 0 "build_insertvalue0" atentry in let agg1 = build_insertvalue agg0 (const_int i8_type 2) 1 @@ -1179,12 +1180,12 @@ (* see test/Feature/exception.ll *) let bblpad = append_block context "Bblpad" fn in - let rt = struct_type context [| pointer_type i8_type; i32_type |] in + let rt = struct_type context [| pointer_type context; i32_type |] in let ft = var_arg_function_type i32_type [||] in let personality = declare_function "__gxx_personality_v0" ft m in - let ztic = declare_global (pointer_type i8_type) "_ZTIc" m in - let ztid = declare_global (pointer_type i8_type) "_ZTId" m in - let ztipkc = declare_global (pointer_type i8_type) "_ZTIPKc" m in + let ztic = declare_global (pointer_type context) "_ZTIc" m in + let ztid = declare_global (pointer_type context) "_ZTId" m in + let ztipkc = declare_global (pointer_type context) "_ZTIPKc" m in begin set_global_constant true ztic; set_global_constant true ztid; @@ -1193,8 +1194,8 @@ (builder_at_end context bblpad) in begin set_cleanup lp true; add_clause lp ztic; - insist((pointer_type (pointer_type i8_type)) = type_of ztid); - let ety = pointer_type (pointer_type i8_type) in + insist((pointer_type context) = type_of ztid); + let ety = pointer_type context in add_clause lp (const_array ety [| ztipkc; ztid |]); ignore (build_resume lp (builder_at_end context bblpad)); end; @@ -1254,7 +1255,7 @@ * CHECK: call{{.*}}@malloc(i32 % *) let bb1 = append_block context "MallocBlock1" fn in - let m1 = (build_malloc (pointer_type i32_type) "m1" + let m1 = (build_malloc (pointer_type context) "m1" (builder_at_end context bb1)) in ignore (build_free m1 (builder_at_end context bb1)); ignore (build_array_malloc i32_type p1 "m2" (builder_at_end context bb1)); @@ -1284,7 +1285,7 @@ *) let bb04 = append_block context "Bb04" fn in let b = builder_at_end context bb04 in - ignore (build_invoke2 fty fn [| p1; p2 |] bb04 bblpad "build_invoke" b) + ignore (build_invoke fty fn [| p1; p2 |] bb04 bblpad "build_invoke" b) end; group "unreachable"; begin @@ -1381,7 +1382,7 @@ let alloca = build_alloca i32_type "build_alloca" b in let array_alloca = build_array_alloca i32_type p2 "build_array_alloca" b in - let load = build_load2 i32_type array_alloca "build_load" b in + let load = build_load i32_type array_alloca "build_load" b in ignore(set_alignment 4 load); ignore(set_volatile true load); insist(true = is_volatile load); @@ -1392,13 +1393,13 @@ ignore(set_alignment 4 store); insist(true = is_volatile store); insist(4 = alignment store); - ignore(build_gep2 i32_type array_alloca [| p2 |] "build_gep" b); - ignore(build_in_bounds_gep2 i32_type array_alloca [| p2 |] + ignore(build_gep i32_type array_alloca [| p2 |] "build_gep" b); + ignore(build_in_bounds_gep i32_type array_alloca [| p2 |] "build_in_bounds_gep" b); let sty = struct_type context [| i32_type; i8_type |] in let alloca2 = build_alloca sty "build_alloca2" b in - ignore(build_struct_gep2 sty alloca2 1 "build_struct_gep" b); + ignore(build_struct_gep sty alloca2 1 "build_struct_gep" b); let p = build_alloca i8_type "p" b in ignore(build_atomicrmw AtomicRMWBinOp.Xchg p (const_int i8_type 42) @@ -1411,7 +1412,7 @@ group "string"; begin let bb09 = append_block context "Bb09" fn in let b = builder_at_end context bb09 in - let p = build_alloca (pointer_type i8_type) "p" b in + let p = build_alloca (pointer_type context) "p" b in (* build_global_string is emitted above. * CHECK: store{{.*}}build_global_string1{{.*}}p * *) diff --git a/llvm/test/Bindings/OCaml/debuginfo.ml b/llvm/test/Bindings/OCaml/debuginfo.ml --- a/llvm/test/Bindings/OCaml/debuginfo.ml +++ b/llvm/test/Bindings/OCaml/debuginfo.ml @@ -183,7 +183,7 @@ | Some file_of_f_di', Some file_of_scope' -> file_of_f_di' = file_di && file_of_scope' = file_di | _ -> false ); - let foocall = Llvm.build_call2 fty foodecl [| arg0 |] "" builder in + let foocall = Llvm.build_call fty foodecl [| arg0 |] "" builder in let foocall_loc = Llvm_debuginfo.dibuild_create_debug_location context ~line:10 ~column:12 ~scope diff --git a/llvm/test/Bindings/OCaml/executionengine.ml b/llvm/test/Bindings/OCaml/executionengine.ml --- a/llvm/test/Bindings/OCaml/executionengine.ml +++ b/llvm/test/Bindings/OCaml/executionengine.ml @@ -31,7 +31,7 @@ let fty = function_type i32_type [||] in let fn = define_function "getglobal" fty m in let b = builder_at_end (global_context ()) (entry_block fn) in - let g = build_call2 fty pg [||] "" b in + let g = build_call fty pg [||] "" b in ignore (build_ret g b); fn diff --git a/llvm/test/Bindings/OCaml/ipo.ml b/llvm/test/Bindings/OCaml/ipo.ml --- a/llvm/test/Bindings/OCaml/ipo.ml +++ b/llvm/test/Bindings/OCaml/ipo.ml @@ -43,7 +43,7 @@ let fn2 = define_function "fn2" fty m in begin ignore (build_ret (const_int i8_type 4) (builder_at_end context (entry_block fn))); let b = builder_at_end context (entry_block fn2) in - ignore (build_ret (build_call2 fty fn [| |] "" b) b); + ignore (build_ret (build_call fty fn [| |] "" b) b); end; ignore (PassManager.create ()