From 47ae4a1cee5eec5767a11403c0fac7c91ec45461 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Tue, 5 Aug 2003 15:51:05 +0000 Subject: [PATCH] If we're debugging the SimplifyCFG pass, we _REALLY_ don't want to use it for narrowing, no matter what. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7596 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/bugpoint/BugDriver.h | 2 ++ tools/bugpoint/CrashDebugger.cpp | 12 +++++++----- tools/bugpoint/ExtractFunction.cpp | 8 +++++--- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/tools/bugpoint/BugDriver.h b/tools/bugpoint/BugDriver.h index f86782a0bc9..eff11ec0de4 100644 --- a/tools/bugpoint/BugDriver.h +++ b/tools/bugpoint/BugDriver.h @@ -27,6 +27,8 @@ class ReduceCrashingBlocks; class CBE; class GCC; +extern bool DisableSimplifyCFG; + class BugDriver { const std::string ToolName; // Name of bugpoint std::string ReferenceOutputFile; // Name of `good' output file diff --git a/tools/bugpoint/CrashDebugger.cpp b/tools/bugpoint/CrashDebugger.cpp index 872725593e2..e969d5e0be6 100644 --- a/tools/bugpoint/CrashDebugger.cpp +++ b/tools/bugpoint/CrashDebugger.cpp @@ -304,11 +304,13 @@ bool BugDriver::debugCrash() { // to a return instruction then running simplifycfg, which can potentially // shrinks the code dramatically quickly // - std::vector Blocks; - for (Module::iterator I = Program->begin(), E = Program->end(); I != E; ++I) - for (Function::iterator FI = I->begin(), E = I->end(); FI != E; ++FI) - Blocks.push_back(FI); - ReduceCrashingBlocks(*this).reduceList(Blocks); + if (!DisableSimplifyCFG) { + std::vector Blocks; + for (Module::iterator I = Program->begin(), E = Program->end(); I != E; ++I) + for (Function::iterator FI = I->begin(), E = I->end(); FI != E; ++FI) + Blocks.push_back(FI); + ReduceCrashingBlocks(*this).reduceList(Blocks); + } // FIXME: This should use the list reducer to converge faster by deleting // larger chunks of instructions at a time! diff --git a/tools/bugpoint/ExtractFunction.cpp b/tools/bugpoint/ExtractFunction.cpp index 525c7467f16..9cb922a55d4 100644 --- a/tools/bugpoint/ExtractFunction.cpp +++ b/tools/bugpoint/ExtractFunction.cpp @@ -16,6 +16,8 @@ #include "llvm/Constant.h" #include "Support/CommandLine.h" +bool DisableSimplifyCFG = false; + namespace { cl::opt NoADCE("disable-adce", @@ -23,8 +25,8 @@ namespace { cl::opt NoDCE ("disable-dce", cl::desc("Do not use the -dce pass to reduce testcases")); - cl::opt - NoSCFG("disable-simplifycfg", + cl::opt + NoSCFG("disable-simplifycfg", cl::location(DisableSimplifyCFG), cl::desc("Do not use the -simplifycfg pass to reduce testcases")); cl::opt NoFinalCleanup("disable-final-cleanup", @@ -67,7 +69,7 @@ Module *BugDriver::deleteInstructionFromProgram(Instruction *I, //Passes.add(createInstructionCombiningPass()); if (Simplification > 1 && !NoDCE) Passes.add(createDeadCodeEliminationPass()); - if (Simplification && !NoSCFG) + if (Simplification && !DisableSimplifyCFG) Passes.add(createCFGSimplificationPass()); // Delete dead control flow Passes.add(createVerifierPass()); -- 2.34.1