Revert r63600. It didn't fix the bug, it just moved it a bit.
authorNick Lewycky <nicholas@mxc.ca>
Tue, 3 Feb 2009 06:30:37 +0000 (06:30 +0000)
committerNick Lewycky <nicholas@mxc.ca>
Tue, 3 Feb 2009 06:30:37 +0000 (06:30 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63618 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Utils/InlineFunction.cpp
test/Transforms/Inline/2009-02-02-InvokeUpdateCG.ll [deleted file]

index eb136b503497255943399cc8de1e346a684abd0b..758b97ea9154d8e06423752b0af5714676879a1f 100644 (file)
@@ -41,8 +41,7 @@ bool llvm::InlineFunction(InvokeInst *II, CallGraph *CG, const TargetData *TD) {
 /// block of the inlined code (the last block is the end of the function),
 /// and InlineCodeInfo is information about the code that got inlined.
 static void HandleInlinedInvoke(InvokeInst *II, BasicBlock *FirstNewBlock,
-                                ClonedCodeInfo &InlinedCodeInfo,
-                                CallGraph *CG) {
+                                ClonedCodeInfo &InlinedCodeInfo) {
   BasicBlock *InvokeDest = II->getUnwindDest();
   std::vector<Value*> InvokeDestPHIValues;
 
@@ -94,10 +93,6 @@ static void HandleInlinedInvoke(InvokeInst *II, BasicBlock *FirstNewBlock,
           // Make sure that anything using the call now uses the invoke!
           CI->replaceAllUsesWith(II);
 
-          // Update the callgraph.
-          if (CG)
-            (*CG)[Caller]->replaceCallSite(CI, II);
-
           // Delete the unconditional branch inserted by splitBasicBlock
           BB->getInstList().pop_back();
           Split->getInstList().pop_front();  // Delete the original call
@@ -438,7 +433,7 @@ bool llvm::InlineFunction(CallSite CS, CallGraph *CG, const TargetData *TD) {
   // any inlined 'unwind' instructions into branches to the invoke exception
   // destination, and call instructions into invoke instructions.
   if (InvokeInst *II = dyn_cast<InvokeInst>(TheCall))
-    HandleInlinedInvoke(II, FirstNewBlock, InlinedFunctionInfo, CG);
+    HandleInlinedInvoke(II, FirstNewBlock, InlinedFunctionInfo);
 
   // If we cloned in _exactly one_ basic block, and if that block ends in a
   // return instruction, we splice the body of the inlined callee directly into
diff --git a/test/Transforms/Inline/2009-02-02-InvokeUpdateCG.ll b/test/Transforms/Inline/2009-02-02-InvokeUpdateCG.ll
deleted file mode 100644 (file)
index 38d7596..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-; RUN: llvm-as < %s | opt -inline -prune-eh
-; PR3367
-
-define void @f2() {
-    invoke void @f6()
-        to label %ok1 unwind label %lpad1
-
-ok1:
-    ret void
-
-lpad1:
-    invoke void @f4()
-        to label %ok2 unwind label %lpad2
-
-ok2:
-    call void @f8()
-    unreachable
-
-lpad2:
-    unreachable
-}
-
-declare void @f3()
-
-define void @f4() {
-    call void @f3()
-    ret void
-}
-
-declare void @f6() nounwind
-
-declare void @f8()