ParamAttrsList::getParamAttrsText(uint16_t Attrs) {
std::string Result;
if (Attrs & ParamAttr::ZExt)
- Result += "zext ";
+ Result += "zeroext ";
if (Attrs & ParamAttr::SExt)
- Result += "sext ";
+ Result += "signext ";
if (Attrs & ParamAttr::NoReturn)
Result += "noreturn ";
if (Attrs & ParamAttr::NoUnwind)
Result += "nounwind ";
if (Attrs & ParamAttr::InReg)
Result += "inreg ";
+ if (Attrs & ParamAttr::NoAlias)
+ Result += "noalias ";
if (Attrs & ParamAttr::StructRet)
Result += "sret ";
+ if (Attrs & ParamAttr::ByVal)
+ Result += "byval ";
return Result;
}
}
const FunctionType *Intrinsic::getType(ID id, const Type **Tys,
- uint32_t numTys) {
+ unsigned numTys) {
const Type *ResultTy = NULL;
std::vector<const Type*> ArgTys;
bool IsVarArg = false;
if (isa<PointerType>(CI->getOperand(0)->getType()))
return StripPointerCasts(CI->getOperand(0));
} else if (GetElementPtrInst *GEP = dyn_cast<GetElementPtrInst>(Ptr)) {
- for (unsigned i = 1, e = GEP->getNumOperands(); i != e; ++i)
- if (!isa<Constant>(GEP->getOperand(i)) ||
- !cast<Constant>(GEP->getOperand(i))->isNullValue())
- return Ptr;
- return StripPointerCasts(GEP->getOperand(0));
+ if (GEP->hasAllZeroIndices())
+ return StripPointerCasts(GEP->getOperand(0));
}
return Ptr;
}