summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-05-21 20:38:59 +0000
committerChris Lattner <sabre@nondot.org>2003-05-21 20:38:59 +0000
commitdbe48dcaec69ff78e39e2d5faf4323ade6fffb04 (patch)
treedecb3a20b41a019adf2c0def93dd0d659bd4c70f /tools
parent9098f64ccce3c3e110e9ef4f08aa2842add4ef08 (diff)
downloadllvm-dbe48dcaec69ff78e39e2d5faf4323ade6fffb04.tar.gz
llvm-dbe48dcaec69ff78e39e2d5faf4323ade6fffb04.tar.bz2
llvm-dbe48dcaec69ff78e39e2d5faf4323ade6fffb04.tar.xz
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')
-rw-r--r--tools/bugpoint/ExtractFunction.cpp12
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());