diff options
author | Chris Lattner <sabre@nondot.org> | 2003-05-21 20:38:59 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-05-21 20:38:59 +0000 |
commit | dbe48dcaec69ff78e39e2d5faf4323ade6fffb04 (patch) | |
tree | decb3a20b41a019adf2c0def93dd0d659bd4c70f /tools/bugpoint/ExtractFunction.cpp | |
parent | 9098f64ccce3c3e110e9ef4f08aa2842add4ef08 (diff) |
Allow disabling final cleanups
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6271 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/bugpoint/ExtractFunction.cpp')
-rw-r--r-- | tools/bugpoint/ExtractFunction.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/tools/bugpoint/ExtractFunction.cpp b/tools/bugpoint/ExtractFunction.cpp index ac893629fb..725ba599bd 100644 --- a/tools/bugpoint/ExtractFunction.cpp +++ b/tools/bugpoint/ExtractFunction.cpp @@ -26,6 +26,9 @@ namespace { cl::opt<bool> NoSCFG("disable-simplifycfg", cl::desc("Do not use the -simplifycfg pass to reduce testcases")); + cl::opt<bool> + NoFinalCleanup("disable-final-cleanup", + cl::desc("Disable the final cleanup phase of narrowing")); } /// deleteInstructionFromProgram - This method clones the current Program and @@ -79,10 +82,17 @@ Module *BugDriver::deleteInstructionFromProgram(Instruction *I, Module *BugDriver::performFinalCleanups() const { Module *M = CloneModule(Program); + // Allow disabling these passes if they crash bugpoint. + // + // FIXME: This should eventually run these passes in a pass list to prevent + // them from being able to crash bugpoint at all! + // + if (NoFinalCleanup) return M; + // Make all functions external, so GlobalDCE doesn't delete them... for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I) I->setLinkage(GlobalValue::ExternalLinkage); - + PassManager CleanupPasses; CleanupPasses.add(createFunctionResolvingPass()); CleanupPasses.add(createGlobalDCEPass()); |