From a75766a6c14b364b74b30546802e26d4b4b36a9b Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Sun, 14 Mar 2004 21:17:22 +0000 Subject: [PATCH] Refactor to use a new method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12395 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/bugpoint/ExtractFunction.cpp | 54 +++++++++--------------------- 1 file changed, 15 insertions(+), 39 deletions(-) diff --git a/tools/bugpoint/ExtractFunction.cpp b/tools/bugpoint/ExtractFunction.cpp index 22bd1738952..53afd474fdd 100644 --- a/tools/bugpoint/ExtractFunction.cpp +++ b/tools/bugpoint/ExtractFunction.cpp @@ -112,25 +112,13 @@ Module *BugDriver::performFinalCleanups(Module *M, bool MayModifySemantics) { CleanupPasses.push_back(getPI(createDeadArgHackingPass())); else CleanupPasses.push_back(getPI(createDeadArgEliminationPass())); - - std::swap(Program, M); - std::string Filename; - bool Failed = runPasses(CleanupPasses, Filename); - std::swap(Program, M); - if (Failed) { + Module *New = runPassesOn(M, CleanupPasses); + if (New == 0) { std::cerr << "Final cleanups failed. Sorry. :( Please report a bug!\n"; - } else { - delete M; - M = ParseInputFile(Filename); - if (M == 0) { - std::cerr << getToolName() << ": Error reading bytecode file '" - << Filename << "'!\n"; - exit(1); - } - removeFile(Filename); } - return M; + delete M; + return New; } @@ -141,32 +129,20 @@ Module *BugDriver::ExtractLoop(Module *M) { std::vector LoopExtractPasses; LoopExtractPasses.push_back(getPI(createSingleLoopExtractorPass())); - std::swap(Program, M); - std::string Filename; - bool Failed = runPasses(LoopExtractPasses, Filename); - std::swap(Program, M); - - if (Failed) { + Module *NewM = runPassesOn(M, LoopExtractPasses); + if (NewM == 0) { std::cerr << "Loop extraction failed. Sorry. :( Please report a bug!\n"; return 0; - } else { - Module *NewM = ParseInputFile(Filename); - if (NewM == 0) { - std::cerr << getToolName() << ": Error reading bytecode file '" - << Filename << "'!\n"; - exit(1); - } - removeFile(Filename); - - // Check to see if we created any new functions. If not, no loops were - // extracted and we should return null. - if (M->size() != NewM->size()) { - delete NewM; - return 0; - } - - return NewM; } + + // Check to see if we created any new functions. If not, no loops were + // extracted and we should return null. + if (M->size() != NewM->size()) { + delete NewM; + return 0; + } + + return NewM; }