diff --git a/clang/lib/CodeGen/CGCall.cpp b/clang/lib/CodeGen/CGCall.cpp index 715438c8ffe3..629c01d9f352 100644 --- a/clang/lib/CodeGen/CGCall.cpp +++ b/clang/lib/CodeGen/CGCall.cpp @@ -924,8 +924,8 @@ void CodeGenModule::ConstructAttributeList(const CGFunctionInfo &FI, const Decl *TargetDecl, AttributeListType &PAL, unsigned &CallingConv) { - llvm::Attributes::Builder FuncAttrs; - llvm::Attributes::Builder RetAttrs; + llvm::AttrBuilder FuncAttrs; + llvm::AttrBuilder RetAttrs; CallingConv = FI.getEffectiveCallingConvention(); @@ -984,7 +984,7 @@ void CodeGenModule::ConstructAttributeList(const CGFunctionInfo &FI, break; case ABIArgInfo::Indirect: { - llvm::Attributes::Builder SRETAttrs; + llvm::AttrBuilder SRETAttrs; SRETAttrs.addAttribute(llvm::Attributes::StructRet); if (RetAI.getInReg()) SRETAttrs.addAttribute(llvm::Attributes::InReg); @@ -1014,7 +1014,7 @@ void CodeGenModule::ConstructAttributeList(const CGFunctionInfo &FI, ie = FI.arg_end(); it != ie; ++it) { QualType ParamType = it->type; const ABIArgInfo &AI = it->info; - llvm::Attributes::Builder Attrs; + llvm::AttrBuilder Attrs; // 'restrict' -> 'noalias' is done in EmitFunctionProlog when we // have the corresponding parameter variable. It doesn't make @@ -1131,7 +1131,7 @@ void CodeGenFunction::EmitFunctionProlog(const CGFunctionInfo &FI, // Name the struct return argument. if (CGM.ReturnTypeUsesSRet(FI)) { AI->setName("agg.result"); - llvm::Attributes::Builder B; + llvm::AttrBuilder B; B.addAttribute(llvm::Attributes::NoAlias); AI->addAttr(llvm::Attributes::get(getLLVMContext(), B)); ++AI; @@ -1203,7 +1203,7 @@ void CodeGenFunction::EmitFunctionProlog(const CGFunctionInfo &FI, llvm::Value *V = AI; if (Arg->getType().isRestrictQualified()) { - llvm::Attributes::Builder B; + llvm::AttrBuilder B; B.addAttribute(llvm::Attributes::NoAlias); AI->addAttr(llvm::Attributes::get(getLLVMContext(), B)); } diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp index c62b1b107345..809c1c15177d 100644 --- a/clang/lib/CodeGen/CGExpr.cpp +++ b/clang/lib/CodeGen/CGExpr.cpp @@ -2081,7 +2081,7 @@ void CodeGenFunction::EmitCheck(llvm::Value *Checked, StringRef CheckName, llvm::FunctionType *FnType = llvm::FunctionType::get(CGM.VoidTy, ArgTypes, false); - llvm::Attributes::Builder B; + llvm::AttrBuilder B; B.addAttribute(llvm::Attributes::NoReturn) .addAttribute(llvm::Attributes::NoUnwind) .addAttribute(llvm::Attributes::UWTable); diff --git a/clang/lib/CodeGen/CGObjCMac.cpp b/clang/lib/CodeGen/CGObjCMac.cpp index 749d9d4b0434..c89171db5505 100644 --- a/clang/lib/CodeGen/CGObjCMac.cpp +++ b/clang/lib/CodeGen/CGObjCMac.cpp @@ -63,7 +63,7 @@ private: // Add the non-lazy-bind attribute, since objc_msgSend is likely to // be called a lot. llvm::Type *params[] = { ObjectPtrTy, SelectorPtrTy }; - llvm::Attributes::Builder B; + llvm::AttrBuilder B; B.addAttribute(llvm::Attributes::NonLazyBind); return CGM.CreateRuntimeFunction(llvm::FunctionType::get(ObjectPtrTy, params, true), @@ -583,7 +583,7 @@ public: llvm::Constant *getSetJmpFn() { // This is specifically the prototype for x86. llvm::Type *params[] = { CGM.Int32Ty->getPointerTo() }; - llvm::Attributes::Builder B; + llvm::AttrBuilder B; B.addAttribute(llvm::Attributes::NonLazyBind); return CGM.CreateRuntimeFunction(llvm::FunctionType::get(CGM.Int32Ty, params, false), diff --git a/clang/lib/CodeGen/CGStmt.cpp b/clang/lib/CodeGen/CGStmt.cpp index 976d69d6b3ce..dc441d9c5b56 100644 --- a/clang/lib/CodeGen/CGStmt.cpp +++ b/clang/lib/CodeGen/CGStmt.cpp @@ -1632,7 +1632,7 @@ void CodeGenFunction::EmitAsmStmt(const AsmStmt &S) { llvm::InlineAsm::get(FTy, AsmString, Constraints, HasSideEffect, /* IsAlignStack */ false, AsmDialect); llvm::CallInst *Result = Builder.CreateCall(IA, Args); - llvm::Attributes::Builder B; + llvm::AttrBuilder B; B.addAttribute(llvm::Attributes::NoUnwind); Result->addAttribute(llvm::AttrListPtr::FunctionIndex, llvm::Attributes::get(getLLVMContext(), B)); diff --git a/clang/lib/CodeGen/ItaniumCXXABI.cpp b/clang/lib/CodeGen/ItaniumCXXABI.cpp index 42ca81e6a6a5..bb63cb33ba4f 100644 --- a/clang/lib/CodeGen/ItaniumCXXABI.cpp +++ b/clang/lib/CodeGen/ItaniumCXXABI.cpp @@ -950,7 +950,7 @@ static llvm::Constant *getGuardAcquireFn(CodeGenModule &CGM, llvm::FunctionType *FTy = llvm::FunctionType::get(CGM.getTypes().ConvertType(CGM.getContext().IntTy), GuardPtrTy, /*isVarArg=*/false); - llvm::Attributes::Builder B; + llvm::AttrBuilder B; B.addAttribute(llvm::Attributes::NoUnwind); return CGM.CreateRuntimeFunction(FTy, "__cxa_guard_acquire", llvm::Attributes::get(CGM.getLLVMContext(), @@ -962,7 +962,7 @@ static llvm::Constant *getGuardReleaseFn(CodeGenModule &CGM, // void __cxa_guard_release(__guard *guard_object); llvm::FunctionType *FTy = llvm::FunctionType::get(CGM.VoidTy, GuardPtrTy, /*isVarArg=*/false); - llvm::Attributes::Builder B; + llvm::AttrBuilder B; B.addAttribute(llvm::Attributes::NoUnwind); return CGM.CreateRuntimeFunction(FTy, "__cxa_guard_release", llvm::Attributes::get(CGM.getLLVMContext(), @@ -974,7 +974,7 @@ static llvm::Constant *getGuardAbortFn(CodeGenModule &CGM, // void __cxa_guard_abort(__guard *guard_object); llvm::FunctionType *FTy = llvm::FunctionType::get(CGM.VoidTy, GuardPtrTy, /*isVarArg=*/false); - llvm::Attributes::Builder B; + llvm::AttrBuilder B; B.addAttribute(llvm::Attributes::NoUnwind); return CGM.CreateRuntimeFunction(FTy, "__cxa_guard_abort", llvm::Attributes::get(CGM.getLLVMContext(), diff --git a/clang/lib/CodeGen/TargetInfo.cpp b/clang/lib/CodeGen/TargetInfo.cpp index dca335d69d09..75cc5a37a57c 100644 --- a/clang/lib/CodeGen/TargetInfo.cpp +++ b/clang/lib/CodeGen/TargetInfo.cpp @@ -968,7 +968,7 @@ void X86_32TargetCodeGenInfo::SetTargetAttributes(const Decl *D, llvm::Function *Fn = cast(GV); // Now add the 'alignstack' attribute with a value of 16. - llvm::Attributes::Builder B; + llvm::AttrBuilder B; B.addStackAlignmentAttr(16); Fn->addAttribute(llvm::AttrListPtr::FunctionIndex, llvm::Attributes::get(CGM.getLLVMContext(), B));