From 6db70ef879916e6115ac97eb76e4fea973652e2c Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 25 Apr 2003 22:08:12 +0000 Subject: [PATCH] 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 --- tools/bugpoint/ExtractFunction.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/tools/bugpoint/ExtractFunction.cpp b/tools/bugpoint/ExtractFunction.cpp index 5451888c4f3..452ddbc24d8 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 + NoADCE("disable-adce", + cl::desc("Do not use the -adce pass to reduce testcases")); + cl::opt + NoDCE ("disable-dce", + cl::desc("Do not use the -dce pass to reduce testcases")); + cl::opt + 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());