mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-26 23:32:58 +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.
|
/// the specified one as the current program.
|
||||||
void setNewProgram(Module *M);
|
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
|
/// executeProgram - This method runs "Program", capturing the output of the
|
||||||
/// program to a file, returning the filename of the file. A recommended
|
/// 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
|
/// filename may be optionally specified. If there is a problem with the code
|
||||||
|
@ -137,6 +137,26 @@ bool BugDriver::initializeExecutionEnvironment() {
|
|||||||
return Interpreter == 0;
|
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
|
/// executeProgram - This method runs "Program", capturing the output of the
|
||||||
/// program to a file, returning the filename of the file. A recommended
|
/// program to a file, returning the filename of the file. A recommended
|
||||||
|
Loading…
x
Reference in New Issue
Block a user