From ca356afe09454b3378165ded4eda294bd6341428 Mon Sep 17 00:00:00 2001 From: Rafael Espindola Date: Thu, 5 Aug 2010 00:29:04 +0000 Subject: Make EmitProgressBitcode const and add a Module argument to runPasses. Use that argument to simplify runPassesOn. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110291 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/bugpoint/OptimizerDriver.cpp | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'tools/bugpoint/OptimizerDriver.cpp') diff --git a/tools/bugpoint/OptimizerDriver.cpp b/tools/bugpoint/OptimizerDriver.cpp index 48936caf5f..a6b90dc44b 100644 --- a/tools/bugpoint/OptimizerDriver.cpp +++ b/tools/bugpoint/OptimizerDriver.cpp @@ -66,7 +66,8 @@ bool BugDriver::writeProgramToFile(const std::string &Filename, /// to a file named "bugpoint-ID.bc". /// void BugDriver::EmitProgressBitcode(const Module *M, - const std::string &ID, bool NoFlyer) { + const std::string &ID, + bool NoFlyer) const { // Output the input to the current pass to a bitcode file, emit a message // telling the user how to reproduce it: opt -foo blah.bc // @@ -125,7 +126,8 @@ cl::opt SilencePasses("silence-passes", cl::desc("Suppress output of runni /// outs() a single line message indicating whether compilation was successful /// or failed. /// -bool BugDriver::runPasses(const std::vector &Passes, +bool BugDriver::runPasses(Module *Program, + const std::vector &Passes, std::string &OutputFilename, bool DeleteOutput, bool Quiet, unsigned NumExtraArgs, const char * const *ExtraArgs) const { @@ -239,24 +241,19 @@ Module *BugDriver::runPassesOn(Module *M, const std::vector &Passes, bool AutoDebugCrashes, unsigned NumExtraArgs, const char * const *ExtraArgs) { - Module *OldProgram = swapProgramIn(M); std::string BitcodeResult; - if (runPasses(Passes, BitcodeResult, false/*delete*/, true/*quiet*/, + if (runPasses(M, Passes, BitcodeResult, false/*delete*/, true/*quiet*/, NumExtraArgs, ExtraArgs)) { if (AutoDebugCrashes) { errs() << " Error running this sequence of passes" << " on the input program!\n"; - delete OldProgram; - EmitProgressBitcode(Program, "pass-error", false); + delete swapProgramIn(M); + EmitProgressBitcode(M, "pass-error", false); exit(debugOptimizerCrash()); } - swapProgramIn(OldProgram); return 0; } - // Restore the current program. - swapProgramIn(OldProgram); - Module *Ret = ParseInputFile(BitcodeResult, Context); if (Ret == 0) { errs() << getToolName() << ": Error reading bitcode file '" -- cgit v1.2.3-70-g09d2