mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-15 21:24:00 +00:00
Here is the bulk of the sanitizing.
Almost all occurrences of "bytecode" in the sources have been eliminated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37913 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -11,7 +11,7 @@
|
||||
// system 'ld' conventions. As such, the default output file is ./a.out.
|
||||
// Additionally, this program outputs a shell script that is used to invoke LLI
|
||||
// to execute the program. In this manner, the generated executable (a.out for
|
||||
// example), is directly executable, whereas the bytecode file actually lives in
|
||||
// example), is directly executable, whereas the bitcode file actually lives in
|
||||
// the a.out.bc file generated by this program. Also, Force is on by default.
|
||||
//
|
||||
// Note that if someone (or a script) deletes the executable program generated,
|
||||
@ -42,7 +42,7 @@ using namespace llvm;
|
||||
|
||||
// Input/Output Options
|
||||
static cl::list<std::string> InputFilenames(cl::Positional, cl::OneOrMore,
|
||||
cl::desc("<input bytecode files>"));
|
||||
cl::desc("<input bitcode files>"));
|
||||
|
||||
static cl::opt<std::string> OutputFilename("o", cl::init("a.out"),
|
||||
cl::desc("Override output filename"),
|
||||
@ -203,11 +203,11 @@ static void RemoveEnv(const char * name, char ** const envp) {
|
||||
return;
|
||||
}
|
||||
|
||||
/// GenerateBytecode - generates a bytecode file from the module provided
|
||||
void GenerateBytecode(Module* M, const std::string& FileName) {
|
||||
/// GenerateBitcode - generates a bitcode file from the module provided
|
||||
void GenerateBitcode(Module* M, const std::string& FileName) {
|
||||
|
||||
if (Verbose)
|
||||
cout << "Generating Bytecode To " << FileName << '\n';
|
||||
cout << "Generating Bitcode To " << FileName << '\n';
|
||||
|
||||
// Create the output file.
|
||||
std::ios::openmode io_mode = std::ios::out | std::ios::trunc |
|
||||
@ -216,22 +216,22 @@ void GenerateBytecode(Module* M, const std::string& FileName) {
|
||||
if (!Out.good())
|
||||
PrintAndExit("error opening '" + FileName + "' for writing!");
|
||||
|
||||
// Ensure that the bytecode file gets removed from the disk if we get a
|
||||
// Ensure that the bitcode file gets removed from the disk if we get a
|
||||
// terminating signal.
|
||||
sys::RemoveFileOnSignal(sys::Path(FileName));
|
||||
|
||||
// Write it out
|
||||
WriteBitcodeToFile(M, Out);
|
||||
|
||||
// Close the bytecode file.
|
||||
// Close the bitcode file.
|
||||
Out.close();
|
||||
}
|
||||
|
||||
/// GenerateAssembly - generates a native assembly language source file from the
|
||||
/// specified bytecode file.
|
||||
/// specified bitcode file.
|
||||
///
|
||||
/// Inputs:
|
||||
/// InputFilename - The name of the input bytecode file.
|
||||
/// InputFilename - The name of the input bitcode file.
|
||||
/// OutputFilename - The name of the file to generate.
|
||||
/// llc - The pathname to use for LLC.
|
||||
/// envp - The environment to use when running LLC.
|
||||
@ -242,7 +242,7 @@ static int GenerateAssembly(const std::string &OutputFilename,
|
||||
const std::string &InputFilename,
|
||||
const sys::Path &llc,
|
||||
std::string &ErrMsg ) {
|
||||
// Run LLC to convert the bytecode file into assembly code.
|
||||
// Run LLC to convert the bitcode file into assembly code.
|
||||
std::vector<const char*> args;
|
||||
args.push_back(llc.c_str());
|
||||
args.push_back("-f");
|
||||
@ -259,12 +259,12 @@ static int GenerateAssembly(const std::string &OutputFilename,
|
||||
return sys::Program::ExecuteAndWait(llc, &args[0], 0, 0, 0, 0, &ErrMsg);
|
||||
}
|
||||
|
||||
/// GenerateCFile - generates a C source file from the specified bytecode file.
|
||||
/// GenerateCFile - generates a C source file from the specified bitcode file.
|
||||
static int GenerateCFile(const std::string &OutputFile,
|
||||
const std::string &InputFile,
|
||||
const sys::Path &llc,
|
||||
std::string& ErrMsg) {
|
||||
// Run LLC to convert the bytecode file into C.
|
||||
// Run LLC to convert the bitcode file into C.
|
||||
std::vector<const char*> args;
|
||||
args.push_back(llc.c_str());
|
||||
args.push_back("-march=c");
|
||||
@ -283,10 +283,10 @@ static int GenerateCFile(const std::string &OutputFile,
|
||||
}
|
||||
|
||||
/// GenerateNative - generates a native object file from the
|
||||
/// specified bytecode file.
|
||||
/// specified bitcode file.
|
||||
///
|
||||
/// Inputs:
|
||||
/// InputFilename - The name of the input bytecode file.
|
||||
/// InputFilename - The name of the input bitcode file.
|
||||
/// OutputFilename - The name of the file to generate.
|
||||
/// NativeLinkItems - The native libraries, files, code with which to link
|
||||
/// LibPaths - The list of directories in which to find libraries.
|
||||
@ -377,7 +377,7 @@ static int GenerateNative(const std::string &OutputFilename,
|
||||
}
|
||||
|
||||
/// EmitShellScript - Output the wrapper file that invokes the JIT on the LLVM
|
||||
/// bytecode file for the program.
|
||||
/// bitcode file for the program.
|
||||
static void EmitShellScript(char **argv) {
|
||||
if (Verbose)
|
||||
cout << "Emitting Shell Script\n";
|
||||
@ -478,7 +478,7 @@ int main(int argc, char **argv, char **envp) {
|
||||
// Construct a Linker (now that Verbose is set)
|
||||
Linker TheLinker(progname, OutputFilename, Verbose);
|
||||
|
||||
// Keep track of the native link items (versus the bytecode items)
|
||||
// Keep track of the native link items (versus the bitcode items)
|
||||
Linker::ItemList NativeLinkItems;
|
||||
|
||||
// Add library paths to the linker
|
||||
@ -517,10 +517,10 @@ int main(int argc, char **argv, char **envp) {
|
||||
// Optimize the module
|
||||
Optimize(Composite.get());
|
||||
|
||||
// Generate the bytecode for the optimized module.
|
||||
std::string RealBytecodeOutput = OutputFilename;
|
||||
if (!LinkAsLibrary) RealBytecodeOutput += ".bc";
|
||||
GenerateBytecode(Composite.get(), RealBytecodeOutput);
|
||||
// Generate the bitcode for the optimized module.
|
||||
std::string RealBitcodeOutput = OutputFilename;
|
||||
if (!LinkAsLibrary) RealBitcodeOutput += ".bc";
|
||||
GenerateBitcode(Composite.get(), RealBitcodeOutput);
|
||||
|
||||
// If we are not linking a library, generate either a native executable
|
||||
// or a JIT shell script, depending upon what the user wants.
|
||||
@ -545,17 +545,17 @@ int main(int argc, char **argv, char **envp) {
|
||||
|
||||
const char* args[4];
|
||||
args[0] = I->c_str();
|
||||
args[1] = RealBytecodeOutput.c_str();
|
||||
args[1] = RealBitcodeOutput.c_str();
|
||||
args[2] = tmp_output.c_str();
|
||||
args[3] = 0;
|
||||
if (0 == sys::Program::ExecuteAndWait(prog, args, 0,0,0,0, &ErrMsg)) {
|
||||
if (tmp_output.isBytecodeFile() || tmp_output.isBitcodeFile()) {
|
||||
sys::Path target(RealBytecodeOutput);
|
||||
if (tmp_output.isBitcodeFile() || tmp_output.isBitcodeFile()) {
|
||||
sys::Path target(RealBitcodeOutput);
|
||||
target.eraseFromDisk();
|
||||
if (tmp_output.renamePathOnDisk(target, &ErrMsg))
|
||||
PrintAndExit(ErrMsg, 2);
|
||||
} else
|
||||
PrintAndExit("Post-link optimization output is not bytecode");
|
||||
PrintAndExit("Post-link optimization output is not bitcode");
|
||||
} else {
|
||||
PrintAndExit(ErrMsg);
|
||||
}
|
||||
@ -563,9 +563,9 @@ int main(int argc, char **argv, char **envp) {
|
||||
}
|
||||
|
||||
// If the user wants to generate a native executable, compile it from the
|
||||
// bytecode file.
|
||||
// bitcode file.
|
||||
//
|
||||
// Otherwise, create a script that will run the bytecode through the JIT.
|
||||
// Otherwise, create a script that will run the bitcode through the JIT.
|
||||
if (Native) {
|
||||
// Name of the Assembly Language output file
|
||||
sys::Path AssemblyFile ( OutputFilename);
|
||||
@ -584,9 +584,9 @@ int main(int argc, char **argv, char **envp) {
|
||||
if (gcc.isEmpty())
|
||||
PrintAndExit("Failed to find gcc");
|
||||
|
||||
// Generate an assembly language file for the bytecode.
|
||||
// Generate an assembly language file for the bitcode.
|
||||
std::string ErrMsg;
|
||||
if (0 != GenerateAssembly(AssemblyFile.toString(), RealBytecodeOutput,
|
||||
if (0 != GenerateAssembly(AssemblyFile.toString(), RealBitcodeOutput,
|
||||
llc, ErrMsg))
|
||||
PrintAndExit(ErrMsg);
|
||||
|
||||
@ -613,10 +613,10 @@ int main(int argc, char **argv, char **envp) {
|
||||
if (gcc.isEmpty())
|
||||
PrintAndExit("Failed to find gcc");
|
||||
|
||||
// Generate an assembly language file for the bytecode.
|
||||
// Generate an assembly language file for the bitcode.
|
||||
std::string ErrMsg;
|
||||
if (0 != GenerateCFile(
|
||||
CFile.toString(), RealBytecodeOutput, llc, ErrMsg))
|
||||
CFile.toString(), RealBitcodeOutput, llc, ErrMsg))
|
||||
PrintAndExit(ErrMsg);
|
||||
|
||||
if (0 != GenerateNative(OutputFilename, CFile.toString(),
|
||||
@ -635,11 +635,11 @@ int main(int argc, char **argv, char **envp) {
|
||||
if (sys::Path(OutputFilename).makeExecutableOnDisk(&ErrMsg))
|
||||
PrintAndExit(ErrMsg);
|
||||
|
||||
// Make the bytecode file readable and directly executable in LLEE as well
|
||||
if (sys::Path(RealBytecodeOutput).makeExecutableOnDisk(&ErrMsg))
|
||||
// Make the bitcode file readable and directly executable in LLEE as well
|
||||
if (sys::Path(RealBitcodeOutput).makeExecutableOnDisk(&ErrMsg))
|
||||
PrintAndExit(ErrMsg);
|
||||
|
||||
if (sys::Path(RealBytecodeOutput).makeReadableOnDisk(&ErrMsg))
|
||||
if (sys::Path(RealBitcodeOutput).makeReadableOnDisk(&ErrMsg))
|
||||
PrintAndExit(ErrMsg);
|
||||
}
|
||||
} catch (const std::string& msg) {
|
||||
|
Reference in New Issue
Block a user