If loopextract breaks the program provide output so that we can repro the
authorChris Lattner <sabre@nondot.org>
Sun, 8 May 2005 21:54:56 +0000 (21:54 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 8 May 2005 21:54:56 +0000 (21:54 +0000)
problem.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21790 91177308-0d34-0410-b5e6-96231b3b80d8

tools/bugpoint/Miscompilation.cpp

index 4d28ff8a9937c2bc716318c0a4ee4076b1b9881b..860b9b4a35f956c86b04038c0377d23a9cbb0739 100644 (file)
@@ -260,7 +260,6 @@ static bool ExtractLoops(BugDriver &BD,
     }
 
     std::cerr << "Extracted a loop from the breaking portion of the program.\n";
-    delete ToOptimize;
 
     // Bugpoint is intentionally not very trusting of LLVM transformations.  In
     // particular, we're not going to assume that the loop extractor works, so
@@ -275,10 +274,19 @@ static bool ExtractLoops(BugDriver &BD,
       std::cerr << "  *** ERROR: Loop extraction broke the program. :("
                 << " Please report a bug!\n";
       std::cerr << "      Continuing on with un-loop-extracted version.\n";
+
+      BD.writeProgramToFile("bugpoint-loop-extract-fail-tno.bc", ToNotOptimize);
+      BD.writeProgramToFile("bugpoint-loop-extract-fail-to.bc", ToOptimize);
+      BD.writeProgramToFile("bugpoint-loop-extract-fail-to-le.bc",
+                            ToOptimizeLoopExtracted);
+
+      std::cerr << "Please submit the bugpoint-loop-extract-fail-*.bc files.\n";
+      delete ToOptimize;
       delete ToNotOptimize;
       delete ToOptimizeLoopExtracted;
       return MadeChange;
     }
+    delete ToOptimize;
     BD.switchToInterpreter(AI);
 
     std::cout << "  Testing after loop extraction:\n";