diff options
author | Chris Lattner <sabre@nondot.org> | 2003-04-24 22:54:06 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-04-24 22:54:06 +0000 |
commit | f607b79bc78fcbfd8cda01d2d5dbda6cd8253a40 (patch) | |
tree | 46dcb9b6a91acfe282b4bb3eb45454d0c5b5e7ec /tools | |
parent | 44be25716628941b4cccccf56a28ee0ba2606850 (diff) | |
download | external_llvm-f607b79bc78fcbfd8cda01d2d5dbda6cd8253a40.zip external_llvm-f607b79bc78fcbfd8cda01d2d5dbda6cd8253a40.tar.gz external_llvm-f607b79bc78fcbfd8cda01d2d5dbda6cd8253a40.tar.bz2 |
The big fix is this change:
- if (I->isExternal() && !Functions.count(I))
+ if (!I->isExternal() && !Functions.count(I))
We were not actually deleting any functions from the module!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5914 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r-- | tools/bugpoint/CrashDebugger.cpp | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/tools/bugpoint/CrashDebugger.cpp b/tools/bugpoint/CrashDebugger.cpp index 5348dd7..f3b2dc2 100644 --- a/tools/bugpoint/CrashDebugger.cpp +++ b/tools/bugpoint/CrashDebugger.cpp @@ -87,7 +87,7 @@ bool ReduceCrashingFunctions::TestFuncs(std::vector<Function*> &Funcs) { Function *CMF = M->getFunction(Funcs[i]->getName(), Funcs[i]->getFunctionType()); assert(CMF && "Function not in module?!"); - Functions.insert(CMF); + Functions.insert(CMF); } std::cout << "Checking for crash with only these functions:"; @@ -98,7 +98,7 @@ bool ReduceCrashingFunctions::TestFuncs(std::vector<Function*> &Funcs) { // Loop over and delete any functions which we aren't supposed to be playing // with... for (Module::iterator I = M->begin(), E = M->end(); I != E; ++I) - if (I->isExternal() && !Functions.count(I)) + if (!I->isExternal() && !Functions.count(I)) DeleteFunctionBody(I); // Try running the hacked up program... @@ -129,11 +129,6 @@ bool BugDriver::debugCrash() { unsigned OldSize = PassesToRun.size(); DebugCrashes(*this).reduceList(PassesToRun); - if (PassesToRun.size() == OldSize) { // Make sure something crashed. :) - std::cerr << "ERROR: No passes crashed!\n"; - return true; - } - std::cout << "\n*** Found crashing pass" << (PassesToRun.size() == 1 ? ": " : "es: ") << getPassesString(PassesToRun) << "\n"; @@ -164,7 +159,6 @@ bool BugDriver::debugCrash() { // FIXME: This should use the list reducer to converge faster by deleting // larger chunks of instructions at a time! - bool Reduced = false; unsigned Simplification = 4; do { --Simplification; @@ -200,7 +194,7 @@ bool BugDriver::debugCrash() { // Yup, it does, we delete the old module, and continue trying to // reduce the testcase... delete M; - Reduced = AnyReduction = true; + AnyReduction = true; goto TryAgain; // I wish I had a multi-level break here! } @@ -222,17 +216,15 @@ bool BugDriver::debugCrash() { if (runPasses(PassesToRun)) { // Yup, it does, keep the reduced version... delete M; - Reduced = AnyReduction = true; + AnyReduction = true; } else { delete Program; // Otherwise, restore the original module... Program = M; } } - if (Reduced) { + if (AnyReduction) EmitProgressBytecode("reduced-simplified"); - Reduced = false; - } return false; } |