X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=blobdiff_plain;f=tools%2Fbugpoint%2FMiscompilation.cpp;h=db6dd54a0879a0e0dc5e1bde8db8ffa8abf15682;hp=0b61b09698559e240f72e4e1859d5a3a65c1e90c;hb=b3df2d03ce1a3b413ade8c80e7289abd481fd0d6;hpb=cc026567d1cf4f85707ed20990c3589995b0f212 diff --git a/tools/bugpoint/Miscompilation.cpp b/tools/bugpoint/Miscompilation.cpp index 0b61b096985..db6dd54a087 100644 --- a/tools/bugpoint/Miscompilation.cpp +++ b/tools/bugpoint/Miscompilation.cpp @@ -228,8 +228,8 @@ static Module *TestMergedProgram(const BugDriver &BD, Module *M1, Module *M2, bool &Broken) { // Link the two portions of the program back to together. if (!DeleteInputs) { - M1 = CloneModule(M1); - M2 = CloneModule(M2); + M1 = CloneModule(M1).release(); + M2 = CloneModule(M2).release(); } if (Linker::linkModules(*M1, *M2, diagnosticHandler)) exit(1); @@ -268,7 +268,7 @@ bool ReduceMiscompilingFunctions::TestFuncs(const std::vector &Funcs, // we can conclude that a function triggers the bug when in fact one // needs a larger set of original functions to do so. ValueToValueMapTy VMap; - Module *Clone = CloneModule(BD.getProgram(), VMap); + Module *Clone = CloneModule(BD.getProgram(), VMap).release(); Module *Orig = BD.swapProgramIn(Clone); std::vector FuncsOnClone; @@ -279,7 +279,7 @@ bool ReduceMiscompilingFunctions::TestFuncs(const std::vector &Funcs, // Split the module into the two halves of the program we want. VMap.clear(); - Module *ToNotOptimize = CloneModule(BD.getProgram(), VMap); + Module *ToNotOptimize = CloneModule(BD.getProgram(), VMap).release(); Module *ToOptimize = SplitFunctionsOutOfModule(ToNotOptimize, FuncsOnClone, VMap); @@ -317,7 +317,7 @@ static bool ExtractLoops(BugDriver &BD, if (BugpointIsInterrupted) return MadeChange; ValueToValueMapTy VMap; - Module *ToNotOptimize = CloneModule(BD.getProgram(), VMap); + Module *ToNotOptimize = CloneModule(BD.getProgram(), VMap).release(); Module *ToOptimize = SplitFunctionsOutOfModule(ToNotOptimize, MiscompiledFunctions, VMap); @@ -376,8 +376,8 @@ static bool ExtractLoops(BugDriver &BD, outs() << " Testing after loop extraction:\n"; // Clone modules, the tester function will free them. - Module *TOLEBackup = CloneModule(ToOptimizeLoopExtracted, VMap); - Module *TNOBackup = CloneModule(ToNotOptimize, VMap); + Module *TOLEBackup = CloneModule(ToOptimizeLoopExtracted, VMap).release(); + Module *TNOBackup = CloneModule(ToNotOptimize, VMap).release(); for (unsigned i = 0, e = MiscompiledFunctions.size(); i != e; ++i) MiscompiledFunctions[i] = cast(VMap[MiscompiledFunctions[i]]); @@ -506,7 +506,7 @@ bool ReduceMiscompiledBlocks::TestFuncs(const std::vector &BBs, // Split the module into the two halves of the program we want. ValueToValueMapTy VMap; - Module *Clone = CloneModule(BD.getProgram(), VMap); + Module *Clone = CloneModule(BD.getProgram(), VMap).release(); Module *Orig = BD.swapProgramIn(Clone); std::vector FuncsOnClone; std::vector BBsOnClone; @@ -520,7 +520,7 @@ bool ReduceMiscompiledBlocks::TestFuncs(const std::vector &BBs, } VMap.clear(); - Module *ToNotOptimize = CloneModule(BD.getProgram(), VMap); + Module *ToNotOptimize = CloneModule(BD.getProgram(), VMap).release(); Module *ToOptimize = SplitFunctionsOutOfModule(ToNotOptimize, FuncsOnClone, VMap); @@ -581,7 +581,7 @@ static bool ExtractBlocks(BugDriver &BD, } ValueToValueMapTy VMap; - Module *ProgClone = CloneModule(BD.getProgram(), VMap); + Module *ProgClone = CloneModule(BD.getProgram(), VMap).release(); Module *ToExtract = SplitFunctionsOutOfModule(ProgClone, MiscompiledFunctions, VMap); @@ -763,7 +763,7 @@ void BugDriver::debugMiscompilation(std::string *Error) { // Output a bunch of bitcode files for the user... outs() << "Outputting reduced bitcode files which expose the problem:\n"; ValueToValueMapTy VMap; - Module *ToNotOptimize = CloneModule(getProgram(), VMap); + Module *ToNotOptimize = CloneModule(getProgram(), VMap).release(); Module *ToOptimize = SplitFunctionsOutOfModule(ToNotOptimize, MiscompiledFunctions, VMap); @@ -1039,7 +1039,7 @@ bool BugDriver::debugCodeGenerator(std::string *Error) { // Split the module into the two halves of the program we want. ValueToValueMapTy VMap; - Module *ToNotCodeGen = CloneModule(getProgram(), VMap); + Module *ToNotCodeGen = CloneModule(getProgram(), VMap).release(); Module *ToCodeGen = SplitFunctionsOutOfModule(ToNotCodeGen, Funcs, VMap); // Condition the modules