Changes in directory llvm/lib/VMCore:
AutoUpgrade.cpp updated: 1.3 -> 1.4 --- Log message: Don't forget about casting the result of an upgraded call to an intrinsic in the case where it needs to cast back to a signed type. --- Diffs of the changes: (+4 -1) AutoUpgrade.cpp | 5 ++++- 1 files changed, 4 insertions(+), 1 deletion(-) Index: llvm/lib/VMCore/AutoUpgrade.cpp diff -u llvm/lib/VMCore/AutoUpgrade.cpp:1.3 llvm/lib/VMCore/AutoUpgrade.cpp:1.4 --- llvm/lib/VMCore/AutoUpgrade.cpp:1.3 Wed Jan 18 23:37:27 2006 +++ llvm/lib/VMCore/AutoUpgrade.cpp Thu Jan 19 01:00:29 2006 @@ -141,7 +141,7 @@ return 0; } -CallInst* llvm::UpgradeIntrinsicCall(CallInst *CI) { +Instruction* llvm::UpgradeIntrinsicCall(CallInst *CI) { Function *F = CI->getCalledFunction(); if (const Type* Ty = get_type(F)) { Function* newF = UpgradeIntrinsicFunction(F); @@ -154,6 +154,9 @@ const Type* newTy = Ty->getUnsignedVersion(); newCI->setOperand(1,new CastInst(newCI->getOperand(1), newTy, "autoupgrade_cast", newCI)); + CastInst* final = new CastInst(newCI, Ty, "autoupgrade_uncast",newCI); + newCI->moveBefore(final); + return final; } return newCI; } _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits