Move function from Miscompilation.cpp
authorChris Lattner <sabre@nondot.org>
Thu, 24 Apr 2003 22:23:34 +0000 (22:23 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 24 Apr 2003 22:23:34 +0000 (22:23 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5908 91177308-0d34-0410-b5e6-96231b3b80d8

tools/bugpoint/BugDriver.cpp

index 05dff34b84ecb2d9664946fdecdae4acafe53a78..7a2ce26a85406814d4a421a9d4313f86671e6d99 100644 (file)
@@ -27,6 +27,19 @@ std::string getPassesString(const std::vector<const PassInfo*> &Passes) {
   return Result;
 }
 
+// DeleteFunctionBody - "Remove" the function by deleting all of it's basic
+// blocks, making it external.
+//
+void DeleteFunctionBody(Function *F) {
+  // First, break circular use/def chain references...
+  for (Function::iterator I = F->begin(), E = F->end(); I != E; ++I)
+    I->dropAllReferences();
+
+  // Next, delete all of the basic blocks.
+  F->getBasicBlockList().clear();
+
+  assert(F->isExternal() && "This didn't make the function external!");
+}
 
 /// ParseInputFile - Given a bytecode or assembly input filename, parse and
 /// return it, or return null if not possible.