forked from OSchip/llvm-project
If we're debugging the SimplifyCFG pass, we _REALLY_ don't want to use it for
narrowing, no matter what. llvm-svn: 7596
This commit is contained in:
parent
463d6a5e7c
commit
d1e2aaef4f
|
@ -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
|
||||
|
|
|
@ -304,11 +304,13 @@ bool BugDriver::debugCrash() {
|
|||
// to a return instruction then running simplifycfg, which can potentially
|
||||
// shrinks the code dramatically quickly
|
||||
//
|
||||
std::vector<BasicBlock*> 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<BasicBlock*> 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!
|
||||
|
|
|
@ -16,6 +16,8 @@
|
|||
#include "llvm/Constant.h"
|
||||
#include "Support/CommandLine.h"
|
||||
|
||||
bool DisableSimplifyCFG = false;
|
||||
|
||||
namespace {
|
||||
cl::opt<bool>
|
||||
NoADCE("disable-adce",
|
||||
|
@ -23,8 +25,8 @@ namespace {
|
|||
cl::opt<bool>
|
||||
NoDCE ("disable-dce",
|
||||
cl::desc("Do not use the -dce pass to reduce testcases"));
|
||||
cl::opt<bool>
|
||||
NoSCFG("disable-simplifycfg",
|
||||
cl::opt<bool, true>
|
||||
NoSCFG("disable-simplifycfg", cl::location(DisableSimplifyCFG),
|
||||
cl::desc("Do not use the -simplifycfg pass to reduce testcases"));
|
||||
cl::opt<bool>
|
||||
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());
|
||||
|
|
Loading…
Reference in New Issue