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

Reply via email to