aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2005-08-02 23:25:56 +0000
committerChris Lattner <sabre@nondot.org>2005-08-02 23:25:56 +0000
commitaed98fa8861a28e5f7ba7c0659e106f2a441e9ff (patch)
treedcc377e5403d269610a5166a5be7c913446b991b
parent86c27eebc0a4aaeb3de1ee615e8c31c6ab60af14 (diff)
If the user interrupts bugpoint, don't extract loops
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22603 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--tools/bugpoint/Miscompilation.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/tools/bugpoint/Miscompilation.cpp b/tools/bugpoint/Miscompilation.cpp
index 834e687995..39f83d0339 100644
--- a/tools/bugpoint/Miscompilation.cpp
+++ b/tools/bugpoint/Miscompilation.cpp
@@ -247,6 +247,8 @@ static bool ExtractLoops(BugDriver &BD,
std::vector<Function*> &MiscompiledFunctions) {
bool MadeChange = false;
while (1) {
+ if (BugpointIsInterrupted) return MadeChange;
+
Module *ToNotOptimize = CloneModule(BD.getProgram());
Module *ToOptimize = SplitFunctionsOutOfModule(ToNotOptimize,
MiscompiledFunctions);
@@ -506,7 +508,8 @@ DebugAMiscompilation(BugDriver &BD,
// See if we can rip any loops out of the miscompiled functions and still
// trigger the problem.
- if (ExtractLoops(BD, TestFn, MiscompiledFunctions)) {
+ if (!BugpointIsInterrupted &&
+ ExtractLoops(BD, TestFn, MiscompiledFunctions)) {
// Okay, we extracted some loops and the problem still appears. See if we
// can eliminate some of the created functions from being candidates.
@@ -526,7 +529,8 @@ DebugAMiscompilation(BugDriver &BD,
std::cout << '\n';
}
- if (ExtractBlocks(BD, TestFn, MiscompiledFunctions)) {
+ if (!BugpointIsInterrupted &&
+ ExtractBlocks(BD, TestFn, MiscompiledFunctions)) {
// Okay, we extracted some blocks and the problem still appears. See if we
// can eliminate some of the created functions from being candidates.