Index: llvm/bindings/go/llvm/ir.go =================================================================== --- llvm/bindings/go/llvm/ir.go +++ llvm/bindings/go/llvm/ir.go @@ -931,16 +931,6 @@ func ConstLShr(lhs, rhs Value) (v Value) { v.C = C.LLVMConstLShr(lhs.C, rhs.C); return } func ConstAShr(lhs, rhs Value) (v Value) { v.C = C.LLVMConstAShr(lhs.C, rhs.C); return } -func ConstGEP(v Value, indices []Value) (rv Value) { - ptr, nvals := llvmValueRefs(indices) - rv.C = C.LLVMConstGEP(v.C, ptr, nvals) - return -} -func ConstInBoundsGEP(v Value, indices []Value) (rv Value) { - ptr, nvals := llvmValueRefs(indices) - rv.C = C.LLVMConstInBoundsGEP(v.C, ptr, nvals) - return -} func ConstTrunc(v Value, t Type) (rv Value) { rv.C = C.LLVMConstTrunc(v.C, t.C); return } func ConstSExt(v Value, t Type) (rv Value) { rv.C = C.LLVMConstSExt(v.C, t.C); return } func ConstZExt(v Value, t Type) (rv Value) { rv.C = C.LLVMConstZExt(v.C, t.C); return } @@ -1058,14 +1048,6 @@ C.LLVMSetCmpXchgFailureOrdering(v.C, C.LLVMAtomicOrdering(ordering)) } -// Operations on aliases -func AddAlias(m Module, t Type, aliasee Value, name string) (v Value) { - cname := C.CString(name) - defer C.free(unsafe.Pointer(cname)) - v.C = C.LLVMAddAlias(m.C, t.C, aliasee.C, cname) - return -} - // Operations on comdat func (m Module) Comdat(name string) (c Comdat) { cname := C.CString(name) @@ -1370,13 +1352,6 @@ rv.C = C.LLVMBuildIndirectBr(b.C, addr.C, C.unsigned(numDests)) return } -func (b Builder) CreateInvoke(fn Value, args []Value, then, catch BasicBlock, name string) (rv Value) { - cname := C.CString(name) - defer C.free(unsafe.Pointer(cname)) - ptr, nvals := llvmValueRefs(args) - rv.C = C.LLVMBuildInvoke(b.C, fn.C, ptr, nvals, then.C, catch.C, cname) - return -} func (b Builder) CreateUnreachable() (rv Value) { rv.C = C.LLVMBuildUnreachable(b.C); return } // Add a case to the switch instruction @@ -1603,36 +1578,10 @@ v.C = C.LLVMBuildFree(b.C, p.C) return } -func (b Builder) CreateLoad(p Value, name string) (v Value) { - cname := C.CString(name) - defer C.free(unsafe.Pointer(cname)) - v.C = C.LLVMBuildLoad(b.C, p.C, cname) - return -} func (b Builder) CreateStore(val Value, p Value) (v Value) { v.C = C.LLVMBuildStore(b.C, val.C, p.C) return } -func (b Builder) CreateGEP(p Value, indices []Value, name string) (v Value) { - cname := C.CString(name) - defer C.free(unsafe.Pointer(cname)) - ptr, nvals := llvmValueRefs(indices) - v.C = C.LLVMBuildGEP(b.C, p.C, ptr, nvals, cname) - return -} -func (b Builder) CreateInBoundsGEP(p Value, indices []Value, name string) (v Value) { - cname := C.CString(name) - defer C.free(unsafe.Pointer(cname)) - ptr, nvals := llvmValueRefs(indices) - v.C = C.LLVMBuildInBoundsGEP(b.C, p.C, ptr, nvals, cname) - return -} -func (b Builder) CreateStructGEP(p Value, i int, name string) (v Value) { - cname := C.CString(name) - defer C.free(unsafe.Pointer(cname)) - v.C = C.LLVMBuildStructGEP(b.C, p.C, C.unsigned(i), cname) - return -} func (b Builder) CreateGlobalString(str, name string) (v Value) { cstr := C.CString(str) defer C.free(unsafe.Pointer(cstr)) @@ -1859,12 +1808,6 @@ v.C = C.LLVMBuildIsNotNull(b.C, val.C, cname) return } -func (b Builder) CreatePtrDiff(lhs, rhs Value, name string) (v Value) { - cname := C.CString(name) - defer C.free(unsafe.Pointer(cname)) - v.C = C.LLVMBuildPtrDiff(b.C, lhs.C, rhs.C, cname) - return -} func (b Builder) CreateLandingPad(t Type, nclauses int, name string) (l Value) { cname := C.CString(name) Index: llvm/bindings/ocaml/llvm/llvm.ml =================================================================== --- llvm/bindings/ocaml/llvm/llvm.ml +++ llvm/bindings/ocaml/llvm/llvm.ml @@ -1212,9 +1212,6 @@ = "llvm_build_indirect_br" external add_destination : llvalue -> llbasicblock -> unit = "llvm_add_destination" -external build_invoke : 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" @@ -1293,8 +1290,6 @@ = "llvm_build_alloca" external build_array_alloca : lltype -> llvalue -> string -> llbuilder -> llvalue = "llvm_build_array_alloca" -external build_load : 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 @@ -1304,16 +1299,10 @@ 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 -> - 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" @@ -1371,8 +1360,6 @@ 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_select : llvalue -> llvalue -> llvalue -> string -> llbuilder -> @@ -1394,8 +1381,6 @@ = "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_freeze : llvalue -> string -> llbuilder -> llvalue Index: llvm/bindings/ocaml/llvm/llvm.mli =================================================================== --- llvm/bindings/ocaml/llvm/llvm.mli +++ llvm/bindings/ocaml/llvm/llvm.mli @@ -2097,13 +2097,6 @@ See the method [llvm::IndirectBrInst::addDestination]. **) val add_destination : llvalue -> llbasicblock -> unit -(** [build_invoke 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]. @@ -2345,12 +2338,6 @@ 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 [%name = load %ty, %v] instruction at the position specified by the instruction builder [b]. @@ -2371,12 +2358,6 @@ 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 [%name = getelementptr srcty, %p, indices...] instruction at the position specified by the instruction builder [b]. @@ -2384,13 +2365,6 @@ val build_gep2 : 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 [%name = gelementptr inbounds srcty, %p, indices...] instruction at the position specified by the instruction builder [b]. @@ -2398,13 +2372,6 @@ 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 - (** [build_struct_gep2 srcty p idx name b] creates a [%name = getelementptr srcty, %p, 0, idx] instruction at the position specified by the instruction builder [b]. @@ -2565,12 +2532,6 @@ 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 [%name = call %fn(args...)] instruction at the position specified by the instruction builder [b]. @@ -2638,12 +2599,6 @@ 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 that measure the difference between two pointer values in multiples of [elemty] at the position specified by the instruction builder [b]. Index: llvm/bindings/ocaml/llvm/llvm_ocaml.c =================================================================== --- llvm/bindings/ocaml/llvm/llvm_ocaml.c +++ llvm/bindings/ocaml/llvm/llvm_ocaml.c @@ -993,12 +993,6 @@ 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, value Indices) { @@ -1006,12 +1000,6 @@ Wosize_val(Indices)); } -/* llvalue -> llvalue array -> llvalue */ -LLVMValueRef llvm_const_in_bounds_gep(LLVMValueRef ConstantVal, value Indices) { - return LLVMConstInBoundsGEP(ConstantVal, (LLVMValueRef *)Op_val(Indices), - Wosize_val(Indices)); -} - /* llvalue -> lltype -> is_signed:bool -> llvalue */ LLVMValueRef llvm_const_intcast(LLVMValueRef CV, LLVMTypeRef T, value IsSigned) { @@ -1257,11 +1245,6 @@ /*--... 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, value AddrSpace, LLVMValueRef Aliasee, value Name) { return LLVMAddAlias2(M, ValueTy, Int_val(AddrSpace), Aliasee, @@ -1764,24 +1747,6 @@ 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, @@ -2025,11 +1990,6 @@ 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) { @@ -2060,13 +2020,6 @@ 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) { @@ -2075,14 +2028,6 @@ 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) { @@ -2091,13 +2036,6 @@ 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) { @@ -2271,13 +2209,6 @@ 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) { @@ -2341,12 +2272,6 @@ return LLVMBuildIsNotNull(Builder_val(B), Val, String_val(Name)); } -/* 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) { Index: llvm/docs/ReleaseNotes.rst =================================================================== --- llvm/docs/ReleaseNotes.rst +++ llvm/docs/ReleaseNotes.rst @@ -145,6 +145,22 @@ * ``LLVMConstFNeg`` + +* The following deprecated functions have been removed, because they are + incompatible with opaque pointers. Use the new functions accepting a separate + function/element type instead. + + * ``LLVMBuildLoad`` -> ``LLVMBuildLoad2`` + * ``LLVMBuildCall`` -> ``LLVMBuildCall2`` + * ``LLVMBuildInvoke`` -> ``LLVMBuildInvoke2`` + * ``LLVMBuildGEP`` -> ``LLVMBuildGEP2`` + * ``LLVMBuildInBoundsGEP`` -> ``LLVMBuildInBoundsGEP2`` + * ``LLVMBuildStructGEP`` -> ``LLVMBuildStructGEP2`` + * ``LLVMBuildPtrDiff`` -> ``LLVMBuildPtrDiff2`` + * ``LLVMConstGEP`` -> ``LLVMConstGEP2`` + * ``LLVMConstInBoundsGEP`` -> ``LLVMConstInBoundsGEP2`` + * ``LLVMAddAlias`` -> ``LLVMAddAlias2`` + Changes to the Go bindings -------------------------- Index: llvm/include/llvm-c/Core.h =================================================================== --- llvm/include/llvm-c/Core.h +++ llvm/include/llvm-c/Core.h @@ -2182,18 +2182,8 @@ LLVMValueRef LLVMConstShl(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant); LLVMValueRef LLVMConstLShr(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant); LLVMValueRef LLVMConstAShr(LLVMValueRef LHSConstant, LLVMValueRef RHSConstant); -LLVM_ATTRIBUTE_C_DEPRECATED( - LLVMValueRef LLVMConstGEP(LLVMValueRef ConstantVal, - LLVMValueRef *ConstantIndices, - unsigned NumIndices), - "Use LLVMConstGEP2 instead to support opaque pointers"); LLVMValueRef LLVMConstGEP2(LLVMTypeRef Ty, LLVMValueRef ConstantVal, LLVMValueRef *ConstantIndices, unsigned NumIndices); -LLVM_ATTRIBUTE_C_DEPRECATED( - LLVMValueRef LLVMConstInBoundsGEP(LLVMValueRef ConstantVal, - LLVMValueRef *ConstantIndices, - unsigned NumIndices), - "Use LLVMConstInBoundsGEP2 instead to support opaque pointers"); LLVMValueRef LLVMConstInBoundsGEP2(LLVMTypeRef Ty, LLVMValueRef ConstantVal, LLVMValueRef *ConstantIndices, unsigned NumIndices); @@ -2409,10 +2399,6 @@ * @{ */ -LLVM_ATTRIBUTE_C_DEPRECATED( - LLVMValueRef LLVMAddAlias(LLVMModuleRef M, LLVMTypeRef Ty, - LLVMValueRef Aliasee, const char *Name), - "Use LLVMAddAlias2 instead to support opaque pointers"); /** * Add a GlobalAlias with the given value type, address space and aliasee. @@ -3723,12 +3709,6 @@ LLVMBasicBlockRef Else, unsigned NumCases); LLVMValueRef LLVMBuildIndirectBr(LLVMBuilderRef B, LLVMValueRef Addr, unsigned NumDests); -LLVM_ATTRIBUTE_C_DEPRECATED( - LLVMValueRef LLVMBuildInvoke(LLVMBuilderRef, LLVMValueRef Fn, - LLVMValueRef *Args, unsigned NumArgs, - LLVMBasicBlockRef Then, - LLVMBasicBlockRef Catch, const char *Name), - "Use LLVMBuildInvoke2 instead to support opaque pointers"); LLVMValueRef LLVMBuildInvoke2(LLVMBuilderRef, LLVMTypeRef Ty, LLVMValueRef Fn, LLVMValueRef *Args, unsigned NumArgs, LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch, @@ -3922,27 +3902,9 @@ LLVMValueRef LLVMBuildArrayAlloca(LLVMBuilderRef, LLVMTypeRef Ty, LLVMValueRef Val, const char *Name); LLVMValueRef LLVMBuildFree(LLVMBuilderRef, LLVMValueRef PointerVal); -LLVM_ATTRIBUTE_C_DEPRECATED( - LLVMValueRef LLVMBuildLoad(LLVMBuilderRef, LLVMValueRef PointerVal, - const char *Name), - "Use LLVMBuildLoad2 instead to support opaque pointers"); LLVMValueRef LLVMBuildLoad2(LLVMBuilderRef, LLVMTypeRef Ty, LLVMValueRef PointerVal, const char *Name); LLVMValueRef LLVMBuildStore(LLVMBuilderRef, LLVMValueRef Val, LLVMValueRef Ptr); -LLVM_ATTRIBUTE_C_DEPRECATED( - LLVMValueRef LLVMBuildGEP(LLVMBuilderRef B, LLVMValueRef Pointer, - LLVMValueRef *Indices, unsigned NumIndices, - const char *Name), - "Use LLVMBuildGEP2 instead to support opaque pointers"); -LLVM_ATTRIBUTE_C_DEPRECATED( - LLVMValueRef LLVMBuildInBoundsGEP(LLVMBuilderRef B, LLVMValueRef Pointer, - LLVMValueRef *Indices, - unsigned NumIndices, const char *Name), - "Use LLVMBuildInBoundsGEP2 instead to support opaque pointers"); -LLVM_ATTRIBUTE_C_DEPRECATED( - LLVMValueRef LLVMBuildStructGEP(LLVMBuilderRef B, LLVMValueRef Pointer, - unsigned Idx, const char *Name), - "Use LLVMBuildStructGEP2 instead to support opaque pointers"); LLVMValueRef LLVMBuildGEP2(LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Pointer, LLVMValueRef *Indices, unsigned NumIndices, const char *Name); @@ -4025,11 +3987,6 @@ /* Miscellaneous instructions */ LLVMValueRef LLVMBuildPhi(LLVMBuilderRef, LLVMTypeRef Ty, const char *Name); -LLVM_ATTRIBUTE_C_DEPRECATED( - LLVMValueRef LLVMBuildCall(LLVMBuilderRef, LLVMValueRef Fn, - LLVMValueRef *Args, unsigned NumArgs, - const char *Name), - "Use LLVMBuildCall2 instead to support opaque pointers"); LLVMValueRef LLVMBuildCall2(LLVMBuilderRef, LLVMTypeRef, LLVMValueRef Fn, LLVMValueRef *Args, unsigned NumArgs, const char *Name); @@ -4058,10 +4015,6 @@ const char *Name); LLVMValueRef LLVMBuildIsNotNull(LLVMBuilderRef, LLVMValueRef Val, const char *Name); -LLVM_ATTRIBUTE_C_DEPRECATED( - LLVMValueRef LLVMBuildPtrDiff(LLVMBuilderRef, LLVMValueRef LHS, - LLVMValueRef RHS, const char *Name), - "Use LLVMBuildPtrDiff2 instead to support opaque pointers"); LLVMValueRef LLVMBuildPtrDiff2(LLVMBuilderRef, LLVMTypeRef ElemTy, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name); Index: llvm/lib/IR/Core.cpp =================================================================== --- llvm/lib/IR/Core.cpp +++ llvm/lib/IR/Core.cpp @@ -1648,15 +1648,6 @@ unwrap(RHSConstant))); } -LLVMValueRef LLVMConstGEP(LLVMValueRef ConstantVal, - LLVMValueRef *ConstantIndices, unsigned NumIndices) { - ArrayRef IdxList(unwrap(ConstantIndices, NumIndices), - NumIndices); - Constant *Val = unwrap(ConstantVal); - Type *Ty = Val->getType()->getScalarType()->getNonOpaquePointerElementType(); - return wrap(ConstantExpr::getGetElementPtr(Ty, Val, IdxList)); -} - LLVMValueRef LLVMConstGEP2(LLVMTypeRef Ty, LLVMValueRef ConstantVal, LLVMValueRef *ConstantIndices, unsigned NumIndices) { ArrayRef IdxList(unwrap(ConstantIndices, NumIndices), @@ -1665,16 +1656,6 @@ return wrap(ConstantExpr::getGetElementPtr(unwrap(Ty), Val, IdxList)); } -LLVMValueRef LLVMConstInBoundsGEP(LLVMValueRef ConstantVal, - LLVMValueRef *ConstantIndices, - unsigned NumIndices) { - ArrayRef IdxList(unwrap(ConstantIndices, NumIndices), - NumIndices); - Constant *Val = unwrap(ConstantVal); - Type *Ty = Val->getType()->getScalarType()->getNonOpaquePointerElementType(); - return wrap(ConstantExpr::getInBoundsGetElementPtr(Ty, Val, IdxList)); -} - LLVMValueRef LLVMConstInBoundsGEP2(LLVMTypeRef Ty, LLVMValueRef ConstantVal, LLVMValueRef *ConstantIndices, unsigned NumIndices) { @@ -2221,15 +2202,6 @@ /*--.. Operations on aliases ......................................--*/ -LLVMValueRef LLVMAddAlias(LLVMModuleRef M, LLVMTypeRef Ty, LLVMValueRef Aliasee, - const char *Name) { - auto *PTy = cast(unwrap(Ty)); - return wrap(GlobalAlias::create(PTy->getNonOpaquePointerElementType(), - PTy->getAddressSpace(), - GlobalValue::ExternalLinkage, Name, - unwrap(Aliasee), unwrap(M))); -} - LLVMValueRef LLVMAddAlias2(LLVMModuleRef M, LLVMTypeRef ValueTy, unsigned AddrSpace, LLVMValueRef Aliasee, const char *Name) { @@ -3159,19 +3131,6 @@ return wrap(unwrap(B)->CreateIndirectBr(unwrap(Addr), NumDests)); } -LLVMValueRef LLVMBuildInvoke(LLVMBuilderRef B, LLVMValueRef Fn, - LLVMValueRef *Args, unsigned NumArgs, - LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch, - const char *Name) { - Value *V = unwrap(Fn); - FunctionType *FnT = - cast(V->getType()->getNonOpaquePointerElementType()); - - return wrap( - unwrap(B)->CreateInvoke(FnT, unwrap(Fn), unwrap(Then), unwrap(Catch), - makeArrayRef(unwrap(Args), NumArgs), Name)); -} - LLVMValueRef LLVMBuildInvoke2(LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Fn, LLVMValueRef *Args, unsigned NumArgs, LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch, @@ -3532,15 +3491,6 @@ CallInst::CreateFree(unwrap(PointerVal), unwrap(B)->GetInsertBlock()))); } -LLVMValueRef LLVMBuildLoad(LLVMBuilderRef B, LLVMValueRef PointerVal, - const char *Name) { - Value *V = unwrap(PointerVal); - PointerType *Ty = cast(V->getType()); - - return wrap( - unwrap(B)->CreateLoad(Ty->getNonOpaquePointerElementType(), V, Name)); -} - LLVMValueRef LLVMBuildLoad2(LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef PointerVal, const char *Name) { return wrap(unwrap(B)->CreateLoad(unwrap(Ty), unwrap(PointerVal), Name)); @@ -3639,15 +3589,6 @@ Name)); } -LLVMValueRef LLVMBuildGEP(LLVMBuilderRef B, LLVMValueRef Pointer, - LLVMValueRef *Indices, unsigned NumIndices, - const char *Name) { - ArrayRef IdxList(unwrap(Indices), NumIndices); - Value *Val = unwrap(Pointer); - Type *Ty = Val->getType()->getScalarType()->getNonOpaquePointerElementType(); - return wrap(unwrap(B)->CreateGEP(Ty, Val, IdxList, Name)); -} - LLVMValueRef LLVMBuildGEP2(LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Pointer, LLVMValueRef *Indices, unsigned NumIndices, const char *Name) { @@ -3655,15 +3596,6 @@ return wrap(unwrap(B)->CreateGEP(unwrap(Ty), unwrap(Pointer), IdxList, Name)); } -LLVMValueRef LLVMBuildInBoundsGEP(LLVMBuilderRef B, LLVMValueRef Pointer, - LLVMValueRef *Indices, unsigned NumIndices, - const char *Name) { - ArrayRef IdxList(unwrap(Indices), NumIndices); - Value *Val = unwrap(Pointer); - Type *Ty = Val->getType()->getScalarType()->getNonOpaquePointerElementType(); - return wrap(unwrap(B)->CreateInBoundsGEP(Ty, Val, IdxList, Name)); -} - LLVMValueRef LLVMBuildInBoundsGEP2(LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Pointer, LLVMValueRef *Indices, unsigned NumIndices, const char *Name) { @@ -3672,13 +3604,6 @@ unwrap(B)->CreateInBoundsGEP(unwrap(Ty), unwrap(Pointer), IdxList, Name)); } -LLVMValueRef LLVMBuildStructGEP(LLVMBuilderRef B, LLVMValueRef Pointer, - unsigned Idx, const char *Name) { - Value *Val = unwrap(Pointer); - Type *Ty = Val->getType()->getScalarType()->getNonOpaquePointerElementType(); - return wrap(unwrap(B)->CreateStructGEP(Ty, Val, Idx, Name)); -} - LLVMValueRef LLVMBuildStructGEP2(LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Pointer, unsigned Idx, const char *Name) { @@ -3897,17 +3822,6 @@ return wrap(unwrap(B)->CreatePHI(unwrap(Ty), 0, Name)); } -LLVMValueRef LLVMBuildCall(LLVMBuilderRef B, LLVMValueRef Fn, - LLVMValueRef *Args, unsigned NumArgs, - const char *Name) { - Value *V = unwrap(Fn); - FunctionType *FnT = - cast(V->getType()->getNonOpaquePointerElementType()); - - return wrap(unwrap(B)->CreateCall(FnT, unwrap(Fn), - makeArrayRef(unwrap(Args), NumArgs), Name)); -} - LLVMValueRef LLVMBuildCall2(LLVMBuilderRef B, LLVMTypeRef Ty, LLVMValueRef Fn, LLVMValueRef *Args, unsigned NumArgs, const char *Name) { @@ -3975,13 +3889,6 @@ return wrap(unwrap(B)->CreateIsNotNull(unwrap(Val), Name)); } -LLVMValueRef LLVMBuildPtrDiff(LLVMBuilderRef B, LLVMValueRef LHS, - LLVMValueRef RHS, const char *Name) { - Value *L = unwrap(LHS); - Type *ElemTy = L->getType()->getNonOpaquePointerElementType(); - return wrap(unwrap(B)->CreatePtrDiff(ElemTy, L, unwrap(RHS), Name)); -} - LLVMValueRef LLVMBuildPtrDiff2(LLVMBuilderRef B, LLVMTypeRef ElemTy, LLVMValueRef LHS, LLVMValueRef RHS, const char *Name) {