diff --git a/lldb/source/Expression/IRDynamicChecks.cpp b/lldb/source/Expression/IRDynamicChecks.cpp index 8d9100a41af9..4bc7cc83ca4c 100644 --- a/lldb/source/Expression/IRDynamicChecks.cpp +++ b/lldb/source/Expression/IRDynamicChecks.cpp @@ -254,7 +254,7 @@ protected: /// @return /// The function pointer, for use in a CallInst. //------------------------------------------------------------------ - llvm::Value *BuildPointerValidatorFunc(lldb::addr_t start_address) { + llvm::FunctionCallee BuildPointerValidatorFunc(lldb::addr_t start_address) { llvm::Type *param_array[1]; param_array[0] = const_cast(GetI8PtrTy()); @@ -266,7 +266,7 @@ protected: PointerType *fun_ptr_ty = PointerType::getUnqual(fun_ty); Constant *fun_addr_int = ConstantInt::get(GetIntptrTy(), start_address, false); - return ConstantExpr::getIntToPtr(fun_addr_int, fun_ptr_ty); + return {fun_ty, ConstantExpr::getIntToPtr(fun_addr_int, fun_ptr_ty)}; } //------------------------------------------------------------------ @@ -279,7 +279,7 @@ protected: /// @return /// The function pointer, for use in a CallInst. //------------------------------------------------------------------ - llvm::Value *BuildObjectCheckerFunc(lldb::addr_t start_address) { + llvm::FunctionCallee BuildObjectCheckerFunc(lldb::addr_t start_address) { llvm::Type *param_array[2]; param_array[0] = const_cast(GetI8PtrTy()); @@ -292,7 +292,7 @@ protected: PointerType *fun_ptr_ty = PointerType::getUnqual(fun_ty); Constant *fun_addr_int = ConstantInt::get(GetIntptrTy(), start_address, false); - return ConstantExpr::getIntToPtr(fun_addr_int, fun_ptr_ty); + return {fun_ty, ConstantExpr::getIntToPtr(fun_addr_int, fun_ptr_ty)}; } PointerType *GetI8PtrTy() { @@ -382,7 +382,7 @@ protected: } private: - llvm::Value *m_valid_pointer_check_func; + llvm::FunctionCallee m_valid_pointer_check_func; }; class ObjcObjectChecker : public Instrumenter { @@ -544,7 +544,7 @@ protected: } private: - llvm::Value *m_objc_object_check_func; + llvm::FunctionCallee m_objc_object_check_func; }; IRDynamicChecks::IRDynamicChecks(DynamicCheckerFunctions &checker_functions, diff --git a/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp b/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp index 44c48944f6fd..9c928054cfb5 100644 --- a/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp +++ b/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.cpp @@ -477,15 +477,15 @@ bool IRForTarget::RewriteObjCConstString(llvm::GlobalVariable *ns_str, ArrayRef CFSCWB_arg_types(arg_type_array, 5); - llvm::Type *CFSCWB_ty = + llvm::FunctionType *CFSCWB_ty = FunctionType::get(ns_str_ty, CFSCWB_arg_types, false); // Build the constant containing the pointer to the function PointerType *CFSCWB_ptr_ty = PointerType::getUnqual(CFSCWB_ty); Constant *CFSCWB_addr_int = ConstantInt::get(m_intptr_ty, CFStringCreateWithBytes_addr, false); - m_CFStringCreateWithBytes = - ConstantExpr::getIntToPtr(CFSCWB_addr_int, CFSCWB_ptr_ty); + m_CFStringCreateWithBytes = { + CFSCWB_ty, ConstantExpr::getIntToPtr(CFSCWB_addr_int, CFSCWB_ptr_ty)}; } ConstantDataSequential *string_array = NULL; @@ -880,14 +880,15 @@ bool IRForTarget::RewriteObjCSelector(Instruction *selector_load) { ArrayRef srN_arg_types(type_array, 1); - llvm::Type *srN_type = + llvm::FunctionType *srN_type = FunctionType::get(sel_ptr_type, srN_arg_types, false); // Build the constant containing the pointer to the function PointerType *srN_ptr_ty = PointerType::getUnqual(srN_type); Constant *srN_addr_int = ConstantInt::get(m_intptr_ty, sel_registerName_addr, false); - m_sel_registerName = ConstantExpr::getIntToPtr(srN_addr_int, srN_ptr_ty); + m_sel_registerName = {srN_type, + ConstantExpr::getIntToPtr(srN_addr_int, srN_ptr_ty)}; } Value *argument_array[1]; @@ -1042,14 +1043,15 @@ bool IRForTarget::RewriteObjCClassReference(Instruction *class_load) { ArrayRef ogC_arg_types(type_array, 1); - llvm::Type *ogC_type = + llvm::FunctionType *ogC_type = FunctionType::get(class_type, ogC_arg_types, false); // Build the constant containing the pointer to the function PointerType *ogC_ptr_ty = PointerType::getUnqual(ogC_type); Constant *ogC_addr_int = ConstantInt::get(m_intptr_ty, objc_getClass_addr, false); - m_objc_getClass = ConstantExpr::getIntToPtr(ogC_addr_int, ogC_ptr_ty); + m_objc_getClass = {ogC_type, + ConstantExpr::getIntToPtr(ogC_addr_int, ogC_ptr_ty)}; } Value *argument_array[1]; diff --git a/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.h b/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.h index 6e54dd92fa7f..526d787854a2 100644 --- a/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.h +++ b/lldb/source/Plugins/ExpressionParser/Clang/IRForTarget.h @@ -16,6 +16,7 @@ #include "lldb/Utility/Stream.h" #include "lldb/Utility/StreamString.h" #include "lldb/lldb-public.h" +#include "llvm/IR/DerivedTypes.h" #include "llvm/Pass.h" #include @@ -30,11 +31,9 @@ class Function; class GlobalValue; class GlobalVariable; class Instruction; -class IntegerType; class Module; class StoreInst; class DataLayout; -class Type; class Value; } @@ -556,18 +555,16 @@ private: ///module. lldb_private::ClangExpressionDeclMap *m_decl_map; ///< The DeclMap containing the Decls - llvm::Constant *m_CFStringCreateWithBytes; ///< The address of the function - ///CFStringCreateWithBytes, cast to - ///the - /// appropriate function pointer type - llvm::Constant *m_sel_registerName; ///< The address of the function - ///sel_registerName, cast to the - ///appropriate - /// function pointer type - llvm::Constant *m_objc_getClass; ///< The address of the function - ///objc_getClass, cast to the - ///appropriate - /// function pointer type + llvm::FunctionCallee + m_CFStringCreateWithBytes; ///< The address of the function + /// CFStringCreateWithBytes, cast to the + /// appropriate function pointer type + llvm::FunctionCallee m_sel_registerName; ///< The address of the function + /// sel_registerName, cast to the + /// appropriate function pointer type + llvm::FunctionCallee m_objc_getClass; ///< The address of the function + /// objc_getClass, cast to the + /// appropriate function pointer type llvm::IntegerType *m_intptr_ty; ///< The type of an integer large enough to hold a pointer. lldb_private::Stream diff --git a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp index 8fb09601bc0b..4725e8c5b0eb 100644 --- a/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp +++ b/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptx86ABIFixups.cpp @@ -192,8 +192,9 @@ bool fixupX86StructRetCalls(llvm::Module &module) { llvm::LoadInst *new_func_addr_load = new llvm::LoadInst(new_func_ptr, "load_func_pointer", call_inst); // and create a callinstruction from it - llvm::CallInst *new_call_inst = llvm::CallInst::Create( - new_func_addr_load, new_call_args, "new_func_call", call_inst); + llvm::CallInst *new_call_inst = + llvm::CallInst::Create(new_func_type, new_func_addr_load, new_call_args, + "new_func_call", call_inst); new_call_inst->setCallingConv(call_inst->getCallingConv()); new_call_inst->setTailCall(call_inst->isTailCall()); llvm::LoadInst *lldb_save_result_address = diff --git a/polly/lib/CodeGen/ManagedMemoryRewrite.cpp b/polly/lib/CodeGen/ManagedMemoryRewrite.cpp index ead32517b026..8065eb8c4bd1 100644 --- a/polly/lib/CodeGen/ManagedMemoryRewrite.cpp +++ b/polly/lib/CodeGen/ManagedMemoryRewrite.cpp @@ -310,7 +310,8 @@ static void rewriteAllocaAsManagedMemory(AllocaInst *Alloca, PollyIRBuilder Builder(M->getContext()); Builder.SetInsertPoint(Alloca); - Value *MallocManagedFn = getOrCreatePollyMallocManaged(*Alloca->getModule()); + Function *MallocManagedFn = + getOrCreatePollyMallocManaged(*Alloca->getModule()); const uint64_t Size = DL.getTypeAllocSize(Alloca->getType()->getElementType()); Value *SizeVal = Builder.getInt64(Size); @@ -330,7 +331,7 @@ static void rewriteAllocaAsManagedMemory(AllocaInst *Alloca, continue; Builder.SetInsertPoint(Return); - Value *FreeManagedFn = getOrCreatePollyFreeManaged(*M); + Function *FreeManagedFn = getOrCreatePollyFreeManaged(*M); Builder.CreateCall(FreeManagedFn, {RawManagedMem}); } }