mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-20 10:24:12 +00:00
switch tools to bitcode from bytecode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36872 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -14,8 +14,6 @@
|
||||
|
||||
#include "llvm/Module.h"
|
||||
#include "llvm/PassManager.h"
|
||||
#include "llvm/Bytecode/Reader.h"
|
||||
#include "llvm/Bytecode/WriteBytecodePass.h"
|
||||
#include "llvm/Bitcode/ReaderWriter.h"
|
||||
#include "llvm/Assembly/PrintModulePass.h"
|
||||
#include "llvm/Analysis/Verifier.h"
|
||||
@ -37,17 +35,12 @@
|
||||
#include <algorithm>
|
||||
using namespace llvm;
|
||||
|
||||
static cl::opt<bool> Bitcode("bitcode");
|
||||
|
||||
// The OptimizationList is automatically populated with registered Passes by the
|
||||
// PassNameParser.
|
||||
//
|
||||
static cl::list<const PassInfo*, bool, PassNameParser>
|
||||
PassList(cl::desc("Optimizations available:"));
|
||||
|
||||
static cl::opt<bool> NoCompress("disable-compression", cl::init(true),
|
||||
cl::desc("Don't compress the generated bytecode"));
|
||||
|
||||
// Other command line options...
|
||||
//
|
||||
static cl::opt<std::string>
|
||||
@ -267,21 +260,15 @@ int main(int argc, char **argv) {
|
||||
|
||||
// Load the input module...
|
||||
std::auto_ptr<Module> M;
|
||||
if (Bitcode) {
|
||||
MemoryBuffer *Buffer
|
||||
= MemoryBuffer::getFileOrSTDIN(&InputFilename[0], InputFilename.size());
|
||||
|
||||
if (Buffer == 0)
|
||||
ErrorMessage = "Error reading file '" + InputFilename + "'";
|
||||
else
|
||||
M.reset(ParseBitcodeFile(Buffer, &ErrorMessage));
|
||||
|
||||
delete Buffer;
|
||||
} else {
|
||||
M.reset(ParseBytecodeFile(InputFilename,
|
||||
Compressor::decompressToNewBuffer,
|
||||
&ErrorMessage));
|
||||
}
|
||||
MemoryBuffer *Buffer
|
||||
= MemoryBuffer::getFileOrSTDIN(&InputFilename[0], InputFilename.size());
|
||||
|
||||
if (Buffer == 0)
|
||||
ErrorMessage = "Error reading file '" + InputFilename + "'";
|
||||
else
|
||||
M.reset(ParseBitcodeFile(Buffer, &ErrorMessage));
|
||||
|
||||
delete Buffer;
|
||||
if (M.get() == 0) {
|
||||
cerr << argv[0] << ": ";
|
||||
if (ErrorMessage.size())
|
||||
@ -372,13 +359,8 @@ int main(int argc, char **argv) {
|
||||
Passes.add(createVerifierPass());
|
||||
|
||||
// Write bytecode out to disk or cout as the last step...
|
||||
OStream L(*Out);
|
||||
if (!NoOutput && !AnalyzeOnly) {
|
||||
if (Bitcode)
|
||||
Passes.add(CreateBitcodeWriterPass(*Out));
|
||||
else
|
||||
Passes.add(new WriteBytecodePass(&L, false, !NoCompress));
|
||||
}
|
||||
if (!NoOutput && !AnalyzeOnly)
|
||||
Passes.add(CreateBitcodeWriterPass(*Out));
|
||||
|
||||
// Now that we have all of the passes ready, run them.
|
||||
Passes.run(*M.get());
|
||||
|
Reference in New Issue
Block a user