summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-upgrade/UpgradeParser.y.cvs
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2007-04-02 02:08:35 +0000
committerReid Spencer <rspencer@reidspencer.com>2007-04-02 02:08:35 +0000
commit69e56c3461065f40fa21b25066732f38a4f71b1f (patch)
tree1e70c9f10e745bebeb94c13c0a238a3c1f1e9ba9 /llvm/tools/llvm-upgrade/UpgradeParser.y.cvs
parent940fccb088b39249eb2caf48c499ae1f2c8276de (diff)
downloadbcm5719-llvm-69e56c3461065f40fa21b25066732f38a4f71b1f.tar.gz
bcm5719-llvm-69e56c3461065f40fa21b25066732f38a4f71b1f.zip
Regenerate
llvm-svn: 35579
Diffstat (limited to 'llvm/tools/llvm-upgrade/UpgradeParser.y.cvs')
-rw-r--r--llvm/tools/llvm-upgrade/UpgradeParser.y.cvs19
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/tools/llvm-upgrade/UpgradeParser.y.cvs b/llvm/tools/llvm-upgrade/UpgradeParser.y.cvs
index 37373cfa6d5..9cc29fb61b4 100644
--- a/llvm/tools/llvm-upgrade/UpgradeParser.y.cvs
+++ b/llvm/tools/llvm-upgrade/UpgradeParser.y.cvs
@@ -1466,6 +1466,25 @@ upgradeIntrinsicCall(const Type* RetTy, const ValID &ID,
return new CallInst(F, Args[0]);
}
break;
+ case 'c':
+ if ((Name.length() <= 14 && !memcmp(&Name[5], "ctpop.i", 7)) ||
+ (Name.length() <= 13 && !memcmp(&Name[5], "ctlz.i", 6)) ||
+ (Name.length() <= 13 && !memcmp(&Name[5], "cttz.i", 6))) {
+ // These intrinsics changed their result type.
+ const Type* ArgTy = Args[0]->getType();
+ Function *OldF = CurModule.CurrentModule->getFunction(Name);
+ if (OldF)
+ OldF->setName("upgrd.rm." + Name);
+
+ Function *NewF = cast<Function>(
+ CurModule.CurrentModule->getOrInsertFunction(Name, Type::Int32Ty,
+ ArgTy, (void*)0));
+
+ Instruction *Call = new CallInst(NewF, Args[0], "", CurBB);
+ return CastInst::createIntegerCast(Call, RetTy, false);
+ }
+ break;
+
case 'v' : {
const Type* PtrTy = PointerType::get(Type::Int8Ty);
std::vector<const Type*> Params;
OpenPOWER on IntegriCloud