diff options
author | Chris Lattner <sabre@nondot.org> | 2003-04-25 22:08:12 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-04-25 22:08:12 +0000 |
commit | 6db70ef879916e6115ac97eb76e4fea973652e2c (patch) | |
tree | bef6354af75558b723884411231cabc938186305 /tools/bugpoint/ExtractFunction.cpp | |
parent | 8bdd129c8a4db68e7a70b05ef03957509b55a6f9 (diff) |
Add options to disable simplification with passes, in case one of them crashes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5950 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/bugpoint/ExtractFunction.cpp')
-rw-r--r-- | tools/bugpoint/ExtractFunction.cpp | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/tools/bugpoint/ExtractFunction.cpp b/tools/bugpoint/ExtractFunction.cpp index 5451888c4f..452ddbc24d 100644 --- a/tools/bugpoint/ExtractFunction.cpp +++ b/tools/bugpoint/ExtractFunction.cpp @@ -14,6 +14,19 @@ #include "llvm/Analysis/Verifier.h" #include "llvm/Type.h" #include "llvm/Constant.h" +#include "Support/CommandLine.h" + +namespace { + cl::opt<bool> + NoADCE("disable-adce", + cl::desc("Do not use the -adce pass to reduce testcases")); + cl::opt<bool> + NoDCE ("disable-dce", + cl::desc("Do not use the -dce pass to reduce testcases")); + cl::opt<bool> + NoSCFG("disable-simplifycfg", + cl::desc("Do not use the -simplifycfg pass to reduce testcases")); +} /// deleteInstructionFromProgram - This method clones the current Program and /// deletes the specified instruction from the cloned module. It then runs a @@ -46,12 +59,12 @@ Module *BugDriver::deleteInstructionFromProgram(Instruction *I, // Spiff up the output a little bit. PassManager Passes; - if (Simplification > 2) + if (Simplification > 2 && !NoADCE) Passes.add(createAggressiveDCEPass()); // Remove dead code... //Passes.add(createInstructionCombiningPass()); - if (Simplification > 1) + if (Simplification > 1 && !NoDCE) Passes.add(createDeadCodeEliminationPass()); - if (Simplification) + if (Simplification && !NoSCFG) Passes.add(createCFGSimplificationPass()); // Delete dead control flow Passes.add(createVerifierPass()); |