From 97182985d530dbef488696c95a39c14fe56c995b Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Wed, 15 Dec 2004 01:53:08 +0000 Subject: [PATCH] For PR351: * Convert use of getUniqueFilename to sys::Path::makeUnique(); git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18949 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/bugpoint/ExecutionDriver.cpp | 17 ++++++++++------ tools/bugpoint/Miscompilation.cpp | 32 ++++++++++++++++++------------ tools/bugpoint/OptimizerDriver.cpp | 5 ++++- 3 files changed, 34 insertions(+), 20 deletions(-) diff --git a/tools/bugpoint/ExecutionDriver.cpp b/tools/bugpoint/ExecutionDriver.cpp index 0687c4c08f3..fbba6871f0e 100644 --- a/tools/bugpoint/ExecutionDriver.cpp +++ b/tools/bugpoint/ExecutionDriver.cpp @@ -152,18 +152,19 @@ bool BugDriver::initializeExecutionEnvironment() { /// void BugDriver::compileProgram(Module *M) { // Emit the program to a bytecode file... - std::string BytecodeFile = getUniqueFilename("bugpoint-test-program.bc"); - if (writeProgramToFile(BytecodeFile, M)) { + sys::Path BytecodeFile ("bugpoint-test-program.bc"); + BytecodeFile.makeUnique(); + if (writeProgramToFile(BytecodeFile.toString(), M)) { std::cerr << ToolName << ": Error emitting bytecode to file '" << BytecodeFile << "'!\n"; exit(1); } // Remove the temporary bytecode file when we are done. - FileRemover BytecodeFileRemover(BytecodeFile); + FileRemover BytecodeFileRemover(BytecodeFile.toString()); // Actually compile the program! - Interpreter->compileProgram(BytecodeFile); + Interpreter->compileProgram(BytecodeFile.toString()); } @@ -181,7 +182,9 @@ std::string BugDriver::executeProgram(std::string OutputFile, bool CreatedBytecode = false; if (BytecodeFile.empty()) { // Emit the program to a bytecode file... - BytecodeFile = getUniqueFilename("bugpoint-test-program.bc"); + sys::Path uniqueFilename("bugpoint-test-program.bc"); + uniqueFilename.makeUnique(); + BytecodeFile = uniqueFilename.toString(); if (writeProgramToFile(BytecodeFile, Program)) { std::cerr << ToolName << ": Error emitting bytecode to file '" @@ -197,7 +200,9 @@ std::string BugDriver::executeProgram(std::string OutputFile, if (OutputFile.empty()) OutputFile = "bugpoint-execution-output"; // Check to see if this is a valid output filename... - OutputFile = getUniqueFilename(OutputFile); + sys::Path uniqueFile(OutputFile); + uniqueFile.makeUnique(); + OutputFile = uniqueFile.toString(); // Figure out which shared objects to run, if any. std::vector SharedObjs(AdditionalSOs); diff --git a/tools/bugpoint/Miscompilation.cpp b/tools/bugpoint/Miscompilation.cpp index e02cf6562c2..2a23ee9e5d9 100644 --- a/tools/bugpoint/Miscompilation.cpp +++ b/tools/bugpoint/Miscompilation.cpp @@ -733,33 +733,35 @@ static void CleanupAndPrepareModules(BugDriver &BD, Module *&Test, static bool TestCodeGenerator(BugDriver &BD, Module *Test, Module *Safe) { CleanupAndPrepareModules(BD, Test, Safe); - std::string TestModuleBC = getUniqueFilename("bugpoint.test.bc"); - if (BD.writeProgramToFile(TestModuleBC, Test)) { + sys::Path TestModuleBC("bugpoint.test.bc"); + TestModuleBC.makeUnique(); + if (BD.writeProgramToFile(TestModuleBC.toString(), Test)) { std::cerr << "Error writing bytecode to `" << TestModuleBC << "'\nExiting."; exit(1); } delete Test; // Make the shared library - std::string SafeModuleBC = getUniqueFilename("bugpoint.safe.bc"); + sys::Path SafeModuleBC("bugpoint.safe.bc"); + SafeModuleBC.makeUnique(); - if (BD.writeProgramToFile(SafeModuleBC, Safe)) { + if (BD.writeProgramToFile(SafeModuleBC.toString(), Safe)) { std::cerr << "Error writing bytecode to `" << SafeModuleBC << "'\nExiting."; exit(1); } - std::string SharedObject = BD.compileSharedObject(SafeModuleBC); + std::string SharedObject = BD.compileSharedObject(SafeModuleBC.toString()); delete Safe; // Run the code generator on the `Test' code, loading the shared library. // The function returns whether or not the new output differs from reference. - int Result = BD.diffProgram(TestModuleBC, SharedObject, false); + int Result = BD.diffProgram(TestModuleBC.toString(), SharedObject, false); if (Result) std::cerr << ": still failing!\n"; else std::cerr << ": didn't fail.\n"; - removeFile(TestModuleBC); - removeFile(SafeModuleBC); + removeFile(TestModuleBC.toString()); + removeFile(SafeModuleBC.toString()); removeFile(SharedObject); return Result; @@ -791,20 +793,24 @@ bool BugDriver::debugCodeGenerator() { // Condition the modules CleanupAndPrepareModules(*this, ToCodeGen, ToNotCodeGen); - std::string TestModuleBC = getUniqueFilename("bugpoint.test.bc"); - if (writeProgramToFile(TestModuleBC, ToCodeGen)) { + sys::Path TestModuleBC("bugpoint.test.bc"); + TestModuleBC.makeUnique(); + + if (writeProgramToFile(TestModuleBC.toString(), ToCodeGen)) { std::cerr << "Error writing bytecode to `" << TestModuleBC << "'\nExiting."; exit(1); } delete ToCodeGen; // Make the shared library - std::string SafeModuleBC = getUniqueFilename("bugpoint.safe.bc"); - if (writeProgramToFile(SafeModuleBC, ToNotCodeGen)) { + sys::Path SafeModuleBC("bugpoint.safe.bc"); + SafeModuleBC.makeUnique(); + + if (writeProgramToFile(SafeModuleBC.toString(), ToNotCodeGen)) { std::cerr << "Error writing bytecode to `" << SafeModuleBC << "'\nExiting."; exit(1); } - std::string SharedObject = compileSharedObject(SafeModuleBC); + std::string SharedObject = compileSharedObject(SafeModuleBC.toString()); delete ToNotCodeGen; std::cout << "You can reproduce the problem with the command line: \n"; diff --git a/tools/bugpoint/OptimizerDriver.cpp b/tools/bugpoint/OptimizerDriver.cpp index 097dd61df1d..d141bd0dabe 100644 --- a/tools/bugpoint/OptimizerDriver.cpp +++ b/tools/bugpoint/OptimizerDriver.cpp @@ -22,6 +22,7 @@ #include "llvm/Bytecode/WriteBytecodePass.h" #include "llvm/Target/TargetData.h" #include "llvm/Support/FileUtilities.h" +#include "llvm/System/Path.h" #include #include #include @@ -114,7 +115,9 @@ bool BugDriver::runPasses(const std::vector &Passes, std::string &OutputFilename, bool DeleteOutput, bool Quiet) const{ std::cout << std::flush; - OutputFilename = getUniqueFilename("bugpoint-output.bc"); + sys::Path uniqueFilename("bugpoint-output.bc"); + uniqueFilename.makeUnique(); + OutputFilename = uniqueFilename.toString(); pid_t child_pid; switch (child_pid = fork()) { -- 2.34.1