return getABIReturnInfo(RetTy, getContext()).isStructRet();
}
-void CodeGenModule::ConstructParamAttrList(const Decl *TargetDecl,
+void CodeGenModule::ConstructAttributeList(const Decl *TargetDecl,
ArgTypeIterator begin,
ArgTypeIterator end,
- ParamAttrListType &PAL) {
+ AttributeListType &PAL) {
unsigned FuncAttrs = 0;
if (TargetDecl) {
if (TargetDecl->getAttr<NoThrowAttr>())
- FuncAttrs |= llvm::ParamAttr::NoUnwind;
+ FuncAttrs |= llvm::Attribute::NoUnwind;
if (TargetDecl->getAttr<NoReturnAttr>())
- FuncAttrs |= llvm::ParamAttr::NoReturn;
+ FuncAttrs |= llvm::Attribute::NoReturn;
}
QualType RetTy = *begin;
case ABIArgInfo::Default:
if (RetTy->isPromotableIntegerType()) {
if (RetTy->isSignedIntegerType()) {
- FuncAttrs |= llvm::ParamAttr::SExt;
+ FuncAttrs |= llvm::Attribute::SExt;
} else if (RetTy->isUnsignedIntegerType()) {
- FuncAttrs |= llvm::ParamAttr::ZExt;
+ FuncAttrs |= llvm::Attribute::ZExt;
}
}
break;
case ABIArgInfo::StructRet:
- PAL.push_back(llvm::FnAttributeWithIndex::get(Index,
- llvm::ParamAttr::StructRet|
- llvm::ParamAttr::NoAlias));
+ PAL.push_back(llvm::AttributeWithIndex::get(Index,
+ llvm::Attribute::StructRet|
+ llvm::Attribute::NoAlias));
++Index;
break;
}
if (FuncAttrs)
- PAL.push_back(llvm::FnAttributeWithIndex::get(0, FuncAttrs));
+ PAL.push_back(llvm::AttributeWithIndex::get(0, FuncAttrs));
for (++begin; begin != end; ++begin) {
QualType ParamType = *begin;
- unsigned ParamAttrs = 0;
+ unsigned Attributes = 0;
ABIArgInfo AI = getABIArgumentInfo(ParamType, getContext());
switch (AI.getKind()) {
assert(0 && "Invalid ABI kind for non-return argument");
case ABIArgInfo::ByVal:
- ParamAttrs |= llvm::ParamAttr::ByVal;
+ Attributes |= llvm::Attribute::ByVal;
assert(AI.getByValAlignment() == 0 && "FIXME: alignment unhandled");
break;
case ABIArgInfo::Default:
if (ParamType->isPromotableIntegerType()) {
if (ParamType->isSignedIntegerType()) {
- ParamAttrs |= llvm::ParamAttr::SExt;
+ Attributes |= llvm::Attribute::SExt;
} else if (ParamType->isUnsignedIntegerType()) {
- ParamAttrs |= llvm::ParamAttr::ZExt;
+ Attributes |= llvm::Attribute::ZExt;
}
}
break;
}
}
- if (ParamAttrs)
- PAL.push_back(llvm::FnAttributeWithIndex::get(Index, ParamAttrs));
+ if (Attributes)
+ PAL.push_back(llvm::AttributeWithIndex::get(Index, Attributes));
++Index;
}
}
CGCallInfo CallInfo(RetTy, CallArgs);
// FIXME: Provide TargetDecl so nounwind, noreturn, etc, etc get set.
- CodeGen::ParamAttrListType ParamAttrList;
- CGM.ConstructParamAttrList(0,
+ CodeGen::AttributeListType AttributeList;
+ CGM.ConstructAttributeList(0,
CallInfo.argtypes_begin(), CallInfo.argtypes_end(),
- ParamAttrList);
- CI->setParamAttrs(llvm::PAListPtr::get(ParamAttrList.begin(),
- ParamAttrList.size()));
+ AttributeList);
+ CI->setAttributes(llvm::AttrListPtr::get(AttributeList.begin(),
+ AttributeList.size()));
if (const llvm::Function *F = dyn_cast<llvm::Function>(Callee))
CI->setCallingConv(F->getCallingConv());
}
}
-void CodeGenModule::SetFunctionParamAttrs(const Decl *D,
+void CodeGenModule::SetFunctionAttributes(const Decl *D,
const CGFunctionInfo &Info,
llvm::Function *F) {
- ParamAttrListType ParamAttrList;
- ConstructParamAttrList(D, Info.argtypes_begin(), Info.argtypes_end(),
- ParamAttrList);
+ AttributeListType AttributeList;
+ ConstructAttributeList(D, Info.argtypes_begin(), Info.argtypes_end(),
+ AttributeList);
- F->setParamAttrs(llvm::PAListPtr::get(ParamAttrList.begin(),
- ParamAttrList.size()));
+ F->setAttributes(llvm::AttrListPtr::get(AttributeList.begin(),
+ AttributeList.size()));
// Set the appropriate calling convention for the Function.
if (D->getAttr<FastCallAttr>())
}
if (!Features.Exceptions)
- F->addParamAttr(0, llvm::ParamAttr::NoUnwind);
+ F->addAttribute(0, llvm::Attribute::NoUnwind);
}
void CodeGenModule::SetMethodAttributes(const ObjCMethodDecl *MD,
llvm::Function *F) {
- SetFunctionParamAttrs(MD, CGFunctionInfo(MD, Context), F);
+ SetFunctionAttributes(MD, CGFunctionInfo(MD, Context), F);
SetFunctionAttributesForDefinition(MD, F);
}
void CodeGenModule::SetFunctionAttributes(const FunctionDecl *FD,
llvm::Function *F) {
- SetFunctionParamAttrs(FD, CGFunctionInfo(FD), F);
+ SetFunctionAttributes(FD, CGFunctionInfo(FD), F);
SetGlobalValueAttributes(FD, FD->getStorageClass() == FunctionDecl::Static,
FD->isInline(), F, false);
void SetMethodAttributes(const ObjCMethodDecl *MD,
llvm::Function *F);
- void SetFunctionParamAttrs(const Decl *D,
+ void SetFunctionAttributes(const Decl *D,
const CGFunctionInfo &Info,
llvm::Function *F);
/// when used as a return type.
bool ReturnTypeUsesSret(QualType RetTy);
- void ConstructParamAttrList(const Decl *TargetDecl,
+ void ConstructAttributeList(const Decl *TargetDecl,
const ArgTypeIterator begin,
const ArgTypeIterator end,
- ParamAttrListType &PAL);
+ AttributeListType &PAL);
private:
/// SetFunctionAttributesForDefinition - Set function attributes