diff options
| author | Chris Lattner <sabre@nondot.org> | 2003-09-08 19:00:30 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2003-09-08 19:00:30 +0000 |
| commit | caa12cfa751748abab31cb6f9caa8d7c13b59170 (patch) | |
| tree | bb96440c71ba0934e9d83dc92af9587a6047678f /llvm/lib/Transforms/Utils/InlineFunction.cpp | |
| parent | 9c58cf6d035e63247064b71800d6c52c3b0824fe (diff) | |
| download | bcm5719-llvm-caa12cfa751748abab31cb6f9caa8d7c13b59170.tar.gz bcm5719-llvm-caa12cfa751748abab31cb6f9caa8d7c13b59170.zip | |
Should invokify is always true
llvm-svn: 8409
Diffstat (limited to 'llvm/lib/Transforms/Utils/InlineFunction.cpp')
| -rw-r--r-- | llvm/lib/Transforms/Utils/InlineFunction.cpp | 40 |
1 files changed, 16 insertions, 24 deletions
diff --git a/llvm/lib/Transforms/Utils/InlineFunction.cpp b/llvm/lib/Transforms/Utils/InlineFunction.cpp index adf4196c1ae..864b6ba3db3 100644 --- a/llvm/lib/Transforms/Utils/InlineFunction.cpp +++ b/llvm/lib/Transforms/Utils/InlineFunction.cpp @@ -185,10 +185,6 @@ bool InlineFunction(CallSite CS) { // We only need to check for function calls: inlined invoke instructions // require no special handling... if (CallInst *CI = dyn_cast<CallInst>(I)) { - // FIXME: this should use annotations of the LLVM functions themselves - // to determine whether or not the function can throw. - bool ShouldInvokify = true; - if (Function *F = CI->getCalledFunction()) if (unsigned ID = F->getIntrinsicID()) if (ID == LLVMIntrinsic::unwind) { @@ -213,27 +209,23 @@ bool InlineFunction(CallSite CS) { break; // Done with this basic block! } - // If we should convert this function into an invoke instruction, do - // so now. - if (ShouldInvokify) { - // First, split the basic block... - BasicBlock *Split = BB->splitBasicBlock(CI, CI->getName()+".noexc"); - - // Next, create the new invoke instruction, inserting it at the end - // of the old basic block. - new InvokeInst(CI->getCalledValue(), Split, InvokeDest, - std::vector<Value*>(CI->op_begin()+1, CI->op_end()), - CI->getName(), BB->getTerminator()); + // Convert this function call into an invoke instruction... - // Delete the unconditional branch inserted by splitBasicBlock - BB->getInstList().pop_back(); - Split->getInstList().pop_front(); // Delete the original call - - // This basic block is now complete, start scanning the next one. - break; - } else { - ++I; - } + // First, split the basic block... + BasicBlock *Split = BB->splitBasicBlock(CI, CI->getName()+".noexc"); + + // Next, create the new invoke instruction, inserting it at the end + // of the old basic block. + new InvokeInst(CI->getCalledValue(), Split, InvokeDest, + std::vector<Value*>(CI->op_begin()+1, CI->op_end()), + CI->getName(), BB->getTerminator()); + + // Delete the unconditional branch inserted by splitBasicBlock + BB->getInstList().pop_back(); + Split->getInstList().pop_front(); // Delete the original call + + // This basic block is now complete, start scanning the next one. + break; } else { ++I; } |

