From: Chris Lattner Date: Sat, 14 May 2005 12:21:56 +0000 (+0000) Subject: Make sure to preserve the calling convention when changing an invoke into X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=16d0db2da8c274f98db4a89ca7a92f970d464b9a;p=oota-llvm.git Make sure to preserve the calling convention when changing an invoke into a call. This fixes Prolangs-C++/deriv2, kimwitu++, and Misc-C++/bigfib on X86 with -enable-x86-fastcc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22023 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Utils/SimplifyCFG.cpp b/lib/Transforms/Utils/SimplifyCFG.cpp index 5f023f1dd11..15ea761f2ce 100644 --- a/lib/Transforms/Utils/SimplifyCFG.cpp +++ b/lib/Transforms/Utils/SimplifyCFG.cpp @@ -1066,6 +1066,7 @@ bool llvm::SimplifyCFG(BasicBlock *BB) { std::vector Args(II->op_begin()+3, II->op_end()); CallInst *CI = new CallInst(II->getCalledValue(), Args, II->getName(), BI); + CI->setCallingConv(II->getCallingConv()); // If the invoke produced a value, the Call now does instead II->replaceAllUsesWith(CI); delete II; @@ -1280,6 +1281,7 @@ bool llvm::SimplifyCFG(BasicBlock *BB) { std::vector Args(II->op_begin()+3, II->op_end()); CallInst *CI = new CallInst(II->getCalledValue(), Args, II->getName(), BI); + CI->setCallingConv(II->getCallingConv()); // If the invoke produced a value, the Call does now instead. II->replaceAllUsesWith(CI); delete II;