diff options
| author | James Y Knight <jyknight@google.com> | 2019-02-08 19:30:46 +0000 | 
|---|---|---|
| committer | James Y Knight <jyknight@google.com> | 2019-02-08 19:30:46 +0000 | 
| commit | ae2f9512196965457b5904ba8e335ad6f53550a0 (patch) | |
| tree | f4fbba41f136bbe128c66872adaefc1e106d2cee | |
| parent | d7047276ec26cf9c90a3768548af9aa9c3955c60 (diff) | |
| download | bcm5719-llvm-ae2f9512196965457b5904ba8e335ad6f53550a0.tar.gz bcm5719-llvm-ae2f9512196965457b5904ba8e335ad6f53550a0.zip  | |
[opaque pointer types] Update calls to CreateCall to pass the function
type in lldb and polly.
llvm-svn: 353549
5 files changed, 32 insertions, 31 deletions
diff --git a/lldb/source/Expression/IRDynamicChecks.cpp b/lldb/source/Expression/IRDynamicChecks.cpp index 8d9100a41af..4bc7cc83ca4 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<llvm::PointerType *>(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<llvm::PointerType *>(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 44c48944f6f..9c928054cfb 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<Type *> 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<Type *> 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<Type *> 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 6e54dd92fa7..526d787854a 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 <functional> @@ -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 8fb09601bc0..4725e8c5b0e 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 ead32517b02..8065eb8c4bd 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});    }  }  | 

