Do not DESTROY programs by default. No wonder bugpoint was not being useful all...
authorChris Lattner <sabre@nondot.org>
Sun, 23 Nov 2003 04:51:05 +0000 (04:51 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 23 Nov 2003 04:51:05 +0000 (04:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10175 91177308-0d34-0410-b5e6-96231b3b80d8

tools/bugpoint/ExtractFunction.cpp

index 4c671be62fae65b79253e901aa4a244f2a293775..0a56ceb35d248272d3b838f6bef6191806f684dc 100644 (file)
 #include "llvm/Transforms/Utils/Cloning.h"
 #include "llvm/Target/TargetData.h"
 #include "Support/CommandLine.h"
-
+using namespace llvm;
 
 namespace llvm {
-
-bool DisableSimplifyCFG = false;
-
+  bool DisableSimplifyCFG = false;
 } // End llvm namespace
 
-using namespace llvm;
-
 namespace {
   cl::opt<bool>
   NoADCE("disable-adce",
@@ -46,8 +42,6 @@ namespace {
          cl::desc("Do not use the -simplifycfg pass to reduce testcases"));
 }
 
-namespace llvm {
-
 /// deleteInstructionFromProgram - This method clones the current Program and
 /// deletes the specified instruction from the cloned module.  It then runs a
 /// series of cleanup passes (ADCE and SimplifyCFG) to eliminate any code which
@@ -114,8 +108,12 @@ Module *BugDriver::performFinalCleanups(Module *M, bool MayModifySemantics) {
   CleanupPasses.push_back(getPI(createFunctionResolvingPass()));
   CleanupPasses.push_back(getPI(createGlobalDCEPass()));
   CleanupPasses.push_back(getPI(createDeadTypeEliminationPass()));
-  CleanupPasses.push_back(getPI(createDeadArgHackingPass()));
 
+  if (MayModifySemantics)
+    CleanupPasses.push_back(getPI(createDeadArgHackingPass()));
+  else
+    CleanupPasses.push_back(getPI(createDeadArgEliminationPass()));
+  
   std::swap(Program, M);
   std::string Filename;
   bool Failed = runPasses(CleanupPasses, Filename);
@@ -134,5 +132,3 @@ Module *BugDriver::performFinalCleanups(Module *M, bool MayModifySemantics) {
   }
   return M;
 }
-
-} // End llvm namespace