[llvm] r255082 - Simplify memory management. NFC.
Rafael Espindola via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 8 16:18:42 PST 2015
Author: rafael
Date: Tue Dec 8 18:18:41 2015
New Revision: 255082
URL: http://llvm.org/viewvc/llvm-project?rev=255082&view=rev
Log:
Simplify memory management. NFC.
Modified:
llvm/trunk/tools/bugpoint/Miscompilation.cpp
Modified: llvm/trunk/tools/bugpoint/Miscompilation.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/bugpoint/Miscompilation.cpp?rev=255082&r1=255081&r2=255082&view=diff
==============================================================================
--- llvm/trunk/tools/bugpoint/Miscompilation.cpp (original)
+++ llvm/trunk/tools/bugpoint/Miscompilation.cpp Tue Dec 8 18:18:41 2015
@@ -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;
}
}
More information about the llvm-commits
mailing list