diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2015-12-09 00:18:41 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2015-12-09 00:18:41 +0000 |
commit | 000bf49cec9c9a6da19410f5146087325d609d10 (patch) | |
tree | 589a60a5f6ed7160bd0eb9b9b367b6969fb1f890 /llvm/tools/bugpoint/Miscompilation.cpp | |
parent | aff20ac3bdb91f5ee2cbec55f665ca4f7bebb5fb (diff) | |
download | bcm5719-llvm-000bf49cec9c9a6da19410f5146087325d609d10.tar.gz bcm5719-llvm-000bf49cec9c9a6da19410f5146087325d609d10.zip |
Simplify memory management. NFC.
llvm-svn: 255082
Diffstat (limited to 'llvm/tools/bugpoint/Miscompilation.cpp')
-rw-r--r-- | llvm/tools/bugpoint/Miscompilation.cpp | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/llvm/tools/bugpoint/Miscompilation.cpp b/llvm/tools/bugpoint/Miscompilation.cpp index d511d39b9b8..d2aba92c7c9 100644 --- a/llvm/tools/bugpoint/Miscompilation.cpp +++ b/llvm/tools/bugpoint/Miscompilation.cpp @@ -317,8 +317,8 @@ static bool ExtractLoops(BugDriver &BD, if (BugpointIsInterrupted) return MadeChange; ValueToValueMapTy VMap; - Module *ToNotOptimize = CloneModule(BD.getProgram(), VMap).release(); - Module *ToOptimize = SplitFunctionsOutOfModule(ToNotOptimize, + std::unique_ptr<Module> ToNotOptimize = CloneModule(BD.getProgram(), VMap); + Module *ToOptimize = SplitFunctionsOutOfModule(ToNotOptimize.get(), MiscompiledFunctions, VMap); std::unique_ptr<Module> ToOptimizeLoopExtracted = @@ -326,7 +326,6 @@ static bool ExtractLoops(BugDriver &BD, if (!ToOptimizeLoopExtracted) { // If the loop extractor crashed or if there were no extractible loops, // then this chapter of our odyssey is over with. - delete ToNotOptimize; delete ToOptimize; return MadeChange; } @@ -341,7 +340,7 @@ static bool ExtractLoops(BugDriver &BD, AbstractInterpreter *AI = BD.switchToSafeInterpreter(); bool Failure; Module *New = TestMergedProgram(BD, ToOptimizeLoopExtracted.get(), - ToNotOptimize, false, Error, Failure); + ToNotOptimize.get(), false, Error, Failure); if (!New) return false; @@ -360,7 +359,7 @@ static bool ExtractLoops(BugDriver &BD, errs() << " Continuing on with un-loop-extracted version.\n"; BD.writeProgramToFile(OutputPrefix + "-loop-extract-fail-tno.bc", - ToNotOptimize); + ToNotOptimize.get()); BD.writeProgramToFile(OutputPrefix + "-loop-extract-fail-to.bc", ToOptimize); BD.writeProgramToFile(OutputPrefix + "-loop-extract-fail-to-le.bc", @@ -369,7 +368,6 @@ static bool ExtractLoops(BugDriver &BD, errs() << "Please submit the " << OutputPrefix << "-loop-extract-fail-*.bc files.\n"; delete ToOptimize; - delete ToNotOptimize; return MadeChange; } delete ToOptimize; @@ -379,17 +377,18 @@ static bool ExtractLoops(BugDriver &BD, // Clone modules, the tester function will free them. std::unique_ptr<Module> TOLEBackup = CloneModule(ToOptimizeLoopExtracted.get(), VMap); - Module *TNOBackup = CloneModule(ToNotOptimize, VMap).release(); + std::unique_ptr<Module> TNOBackup = CloneModule(ToNotOptimize.get(), VMap); for (unsigned i = 0, e = MiscompiledFunctions.size(); i != e; ++i) MiscompiledFunctions[i] = cast<Function>(VMap[MiscompiledFunctions[i]]); - Failure = TestFn(BD, ToOptimizeLoopExtracted.get(), ToNotOptimize, Error); + Failure = + TestFn(BD, ToOptimizeLoopExtracted.get(), ToNotOptimize.get(), Error); if (!Error.empty()) return false; ToOptimizeLoopExtracted = std::move(TOLEBackup); - ToNotOptimize = TNOBackup; + ToNotOptimize = std::move(TNOBackup); if (!Failure) { outs() << "*** Loop extraction masked the problem. Undoing.\n"; @@ -413,7 +412,7 @@ static bool ExtractLoops(BugDriver &BD, MiscompiledFunctions.push_back(NewF); } - BD.setNewProgram(ToNotOptimize); + BD.setNewProgram(ToNotOptimize.release()); return MadeChange; } @@ -444,7 +443,7 @@ static bool ExtractLoops(BugDriver &BD, MiscompiledFunctions.push_back(NewF); } - BD.setNewProgram(ToNotOptimize); + BD.setNewProgram(ToNotOptimize.release()); MadeChange = true; } } |