diff options
author | Anton Korobeynikov <asl@math.spbu.ru> | 2009-08-05 09:32:10 +0000 |
---|---|---|
committer | Anton Korobeynikov <asl@math.spbu.ru> | 2009-08-05 09:32:10 +0000 |
commit | 43cf4f1069253887b8ef8cb3d66e142fd77168e3 (patch) | |
tree | f25de9e525ab1dc0333f3f3d13e774fb797bd5fe /tools | |
parent | 21a17ecb73cb4d6ac115cd2f066528f1a88919cc (diff) | |
download | external_llvm-43cf4f1069253887b8ef8cb3d66e142fd77168e3.zip external_llvm-43cf4f1069253887b8ef8cb3d66e142fd77168e3.tar.gz external_llvm-43cf4f1069253887b8ef8cb3d66e142fd77168e3.tar.bz2 |
Add save-temps option to bugpoint to keep temporary stuff.
Patch by Sandeep Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78183 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r-- | tools/bugpoint/BugDriver.cpp | 2 | ||||
-rw-r--r-- | tools/bugpoint/ExecutionDriver.cpp | 4 | ||||
-rw-r--r-- | tools/bugpoint/ToolRunner.cpp | 11 | ||||
-rw-r--r-- | tools/bugpoint/ToolRunner.h | 3 |
4 files changed, 14 insertions, 6 deletions
diff --git a/tools/bugpoint/BugDriver.cpp b/tools/bugpoint/BugDriver.cpp index 0934206..c3cc389 100644 --- a/tools/bugpoint/BugDriver.cpp +++ b/tools/bugpoint/BugDriver.cpp @@ -196,7 +196,7 @@ bool BugDriver::run() { // Make sure the reference output file gets deleted on exit from this // function, if appropriate. sys::Path ROF(ReferenceOutputFile); - FileRemover RemoverInstance(ROF, CreatedOutput); + FileRemover RemoverInstance(ROF, CreatedOutput && !SaveTemps); // Diff the output of the raw program against the reference output. If it // matches, then we assume there is a miscompilation bug and try to diff --git a/tools/bugpoint/ExecutionDriver.cpp b/tools/bugpoint/ExecutionDriver.cpp index 4122c95..ceaf8f4 100644 --- a/tools/bugpoint/ExecutionDriver.cpp +++ b/tools/bugpoint/ExecutionDriver.cpp @@ -288,7 +288,7 @@ void BugDriver::compileProgram(Module *M) { } // Remove the temporary bitcode file when we are done. - FileRemover BitcodeFileRemover(BitcodeFile); + FileRemover BitcodeFileRemover(BitcodeFile, !SaveTemps); // Actually compile the program! Interpreter->compileProgram(BitcodeFile.toString()); @@ -328,7 +328,7 @@ std::string BugDriver::executeProgram(std::string OutputFile, // Remove the temporary bitcode file when we are done. sys::Path BitcodePath (BitcodeFile); - FileRemover BitcodeFileRemover(BitcodePath, CreatedBitcode); + FileRemover BitcodeFileRemover(BitcodePath, CreatedBitcode && !SaveTemps); if (OutputFile.empty()) OutputFile = "bugpoint-execution-output"; diff --git a/tools/bugpoint/ToolRunner.cpp b/tools/bugpoint/ToolRunner.cpp index ef07079..81314a8 100644 --- a/tools/bugpoint/ToolRunner.cpp +++ b/tools/bugpoint/ToolRunner.cpp @@ -22,6 +22,11 @@ #include <sstream> using namespace llvm; +namespace llvm { + cl::opt<bool> + SaveTemps("save-temps", cl::init(false), cl::desc("Save temporary files")); +} + namespace { cl::opt<std::string> RemoteClient("remote-client", @@ -395,7 +400,7 @@ int LLC::ExecuteProgram(const std::string &Bitcode, sys::Path OutputAsmFile; OutputCode(Bitcode, OutputAsmFile); - FileRemover OutFileRemover(OutputAsmFile); + FileRemover OutFileRemover(OutputAsmFile, !SaveTemps); std::vector<std::string> GCCArgs(ArgsForGCC); GCCArgs.insert(GCCArgs.end(), SharedLibs.begin(), SharedLibs.end()); @@ -560,7 +565,7 @@ int CBE::ExecuteProgram(const std::string &Bitcode, sys::Path OutputCFile; OutputCode(Bitcode, OutputCFile); - FileRemover CFileRemove(OutputCFile); + FileRemover CFileRemove(OutputCFile, !SaveTemps); std::vector<std::string> GCCArgs(ArgsForGCC); GCCArgs.insert(GCCArgs.end(), SharedLibs.begin(), SharedLibs.end()); @@ -726,7 +731,7 @@ int GCC::ExecuteProgram(const std::string &ProgramFile, errs() << "\n"; ); - FileRemover OutputBinaryRemover(OutputBinary); + FileRemover OutputBinaryRemover(OutputBinary, !SaveTemps); if (RemoteClientPath.isEmpty()) { DEBUG(errs() << "<run locally>";); diff --git a/tools/bugpoint/ToolRunner.h b/tools/bugpoint/ToolRunner.h index 721f66c..58daef0 100644 --- a/tools/bugpoint/ToolRunner.h +++ b/tools/bugpoint/ToolRunner.h @@ -17,12 +17,15 @@ #ifndef BUGPOINT_TOOLRUNNER_H #define BUGPOINT_TOOLRUNNER_H +#include "llvm/Support/CommandLine.h" #include "llvm/Support/SystemUtils.h" #include <exception> #include <vector> namespace llvm { +extern cl::opt<bool> SaveTemps; + class CBE; class LLC; |