summaryrefslogtreecommitdiff
path: root/tools/bugpoint/BugDriver.h
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-04-24 22:24:58 +0000
committerChris Lattner <sabre@nondot.org>2003-04-24 22:24:58 +0000
commitaae33f9137e4a64394d8f9fe66611ae53a0ef4e8 (patch)
tree51e1e6ef3682b4f0d574a4ed5b6ba01ebffa5504 /tools/bugpoint/BugDriver.h
parent39aebca3a2d1dd389a6d9cdfb51a53f625e244f0 (diff)
downloadllvm-aae33f9137e4a64394d8f9fe66611ae53a0ef4e8.tar.gz
llvm-aae33f9137e4a64394d8f9fe66611ae53a0ef4e8.tar.bz2
llvm-aae33f9137e4a64394d8f9fe66611ae53a0ef4e8.tar.xz
Use the list reducer to improve convergence speed and to support crashes that
only occur when multiple passes interact or when multiple functions exist in a module git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5911 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/bugpoint/BugDriver.h')
-rw-r--r--tools/bugpoint/BugDriver.h16
1 files changed, 10 insertions, 6 deletions
diff --git a/tools/bugpoint/BugDriver.h b/tools/bugpoint/BugDriver.h
index 5a4fc6a225..263a2c9ba7 100644
--- a/tools/bugpoint/BugDriver.h
+++ b/tools/bugpoint/BugDriver.h
@@ -17,8 +17,10 @@ class Function;
class AbstractInterpreter;
class Instruction;
+class DebugCrashes;
class ReduceMiscompilingPasses;
class ReduceMiscompilingFunctions;
+class ReduceCrashingFunctions;
class BugDriver {
const std::string ToolName; // Name of bugpoint
@@ -26,8 +28,11 @@ class BugDriver {
std::vector<const PassInfo*> PassesToRun;
AbstractInterpreter *Interpreter; // How to run the program
+ // FIXME: sort out public/private distinctions...
+ friend class DebugCrashes;
friend class ReduceMiscompilingPasses;
friend class ReduceMiscompilingFunctions;
+ friend class ReduceCrashingFunctions;
public:
BugDriver(const char *toolname)
: ToolName(toolname), Program(0), Interpreter(0) {}
@@ -52,12 +57,6 @@ public:
///
bool debugCrash();
- /// debugPassCrash - This method is called when the specified pass crashes on
- /// Program as input. It tries to reduce the testcase to something that still
- /// crashes, but it smaller.
- ///
- bool debugPassCrash(const PassInfo *PI);
-
/// debugMiscompilation - This method is used when the passes selected are not
/// crashing, but the generated output is semantically different from the
/// input.
@@ -163,4 +162,9 @@ private:
///
std::string getPassesString(const std::vector<const PassInfo*> &Passes);
+// DeleteFunctionBody - "Remove" the function by deleting all of it's basic
+// blocks, making it external.
+//
+void DeleteFunctionBody(Function *F);
+
#endif