mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-29 22:50:47 +00:00
Add a new method for use by the code generator crash debugger.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11613 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ca00512008
commit
ea9212ca96
@ -127,6 +127,12 @@ public:
|
||||
/// the specified one as the current program.
|
||||
void setNewProgram(Module *M);
|
||||
|
||||
/// compileProgram - Try to compile the specified module, throwing an
|
||||
/// exception if an error occurs, or returning normally if not. This is used
|
||||
/// for code generation crash testing.
|
||||
///
|
||||
void compileProgram(Module *M);
|
||||
|
||||
/// executeProgram - This method runs "Program", capturing the output of the
|
||||
/// program to a file, returning the filename of the file. A recommended
|
||||
/// filename may be optionally specified. If there is a problem with the code
|
||||
|
@ -137,6 +137,26 @@ bool BugDriver::initializeExecutionEnvironment() {
|
||||
return Interpreter == 0;
|
||||
}
|
||||
|
||||
/// compileProgram - Try to compile the specified module, throwing an exception
|
||||
/// if an error occurs, or returning normally if not. This is used for code
|
||||
/// generation crash testing.
|
||||
///
|
||||
void BugDriver::compileProgram(Module *M) {
|
||||
// Emit the program to a bytecode file...
|
||||
std::string BytecodeFile = getUniqueFilename("bugpoint-test-program.bc");
|
||||
if (writeProgramToFile(BytecodeFile, 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);
|
||||
|
||||
// Actually compile the program!
|
||||
Interpreter->compileProgram(BytecodeFile);
|
||||
}
|
||||
|
||||
|
||||
/// executeProgram - This method runs "Program", capturing the output of the
|
||||
/// program to a file, returning the filename of the file. A recommended
|
||||
|
Loading…
Reference in New Issue
Block a user