1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00

Use IRReader.h in opt, to support reading of LLVM Assembly files directly.

llvm-svn: 80922
This commit is contained in:
Dan Gohman 2009-09-03 16:00:08 +00:00
parent 66c853f17f
commit 7a60ef0f45
3 changed files with 6 additions and 13 deletions

View File

@ -1,5 +1,5 @@
set(LLVM_REQUIRES_EH 1)
set(LLVM_LINK_COMPONENTS bitreader bitwriter instrumentation scalaropts ipo)
set(LLVM_LINK_COMPONENTS bitreader asmparser bitwriter instrumentation scalaropts ipo)
add_llvm_tool(opt
AnalysisWrappers.cpp

View File

@ -10,6 +10,6 @@ LEVEL = ../..
TOOLNAME = opt
REQUIRES_EH := 1
LINK_COMPONENTS := bitreader bitwriter instrumentation scalaropts ipo
LINK_COMPONENTS := bitreader bitwriter asmparser instrumentation scalaropts ipo
include $(LEVEL)/Makefile.common

View File

@ -26,6 +26,7 @@
#include "llvm/Target/TargetMachine.h"
#include "llvm/Support/PassNameParser.h"
#include "llvm/System/Signals.h"
#include "llvm/Support/IRReader.h"
#include "llvm/Support/ManagedStatic.h"
#include "llvm/Support/MemoryBuffer.h"
#include "llvm/Support/PluginLoader.h"
@ -342,22 +343,14 @@ int main(int argc, char **argv) {
// FIXME: The choice of target should be controllable on the command line.
std::auto_ptr<TargetMachine> target;
std::string ErrorMessage;
SMDiagnostic Err;
// Load the input module...
std::auto_ptr<Module> M;
if (MemoryBuffer *Buffer
= MemoryBuffer::getFileOrSTDIN(InputFilename, &ErrorMessage)) {
M.reset(ParseBitcodeFile(Buffer, Context, &ErrorMessage));
delete Buffer;
}
M.reset(ParseIRFile(InputFilename, Err, Context));
if (M.get() == 0) {
errs() << argv[0] << ": ";
if (ErrorMessage.size())
errs() << ErrorMessage << "\n";
else
errs() << "bitcode didn't read correctly.\n";
Err.Print(argv[0], errs());
return 1;
}