diff options
author | Evan Cheng <evan.cheng@apple.com> | 2011-07-26 01:49:26 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2011-07-26 01:49:26 +0000 |
commit | ccb21e4f2b2a705dce4f2d82e615dce5aa6cdedb (patch) | |
tree | 777a2e538849b33504ea2045f9b6666a3ca72154 /tools/driver | |
parent | 22f7bb7e7742bd65e903ef4c4a738d9e01e5d08c (diff) |
Assembler really doesn't need to create TargetMachine anymore.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136045 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/driver')
-rw-r--r-- | tools/driver/cc1as_main.cpp | 30 |
1 files changed, 6 insertions, 24 deletions
diff --git a/tools/driver/cc1as_main.cpp b/tools/driver/cc1as_main.cpp index f6f95cb5e2..a33fecc800 100644 --- a/tools/driver/cc1as_main.cpp +++ b/tools/driver/cc1as_main.cpp @@ -50,13 +50,8 @@ #include "llvm/Support/Signals.h" #include "llvm/Support/system_error.h" #include "llvm/Target/TargetData.h" -#include "llvm/Target/TargetInstrInfo.h" -#include "llvm/Target/TargetLowering.h" -#include "llvm/Target/TargetLoweringObjectFile.h" -#include "llvm/Target/TargetMachine.h" #include "llvm/Target/TargetRegistry.h" #include "llvm/Target/TargetSelect.h" -#include "llvm/Target/TargetSubtargetInfo.h" using namespace clang; using namespace clang::driver; using namespace llvm; @@ -268,14 +263,6 @@ static bool ExecuteAssembler(AssemblerInvocation &Opts, Diagnostic &Diags) { if (!Out) return false; - // FIXME: We shouldn't need to do this (and link in codegen). - OwningPtr<TargetMachine> TM(TheTarget->createTargetMachine(Opts.Triple, - "", "")); - if (!TM) { - Diags.Report(diag::err_target_unknown_triple) << Opts.Triple; - return false; - } - // FIXME: This is not pretty. MCContext has a ptr to MCObjectFileInfo and // MCObjectFileInfo needs a MCContext reference in order to initialize itself. OwningPtr<MCObjectFileInfo> MOFI(new MCObjectFileInfo()); @@ -288,11 +275,9 @@ static bool ExecuteAssembler(AssemblerInvocation &Opts, Diagnostic &Diags) { OwningPtr<MCStreamer> Str; - const TargetLoweringObjectFile &TLOF = - TM->getTargetLowering()->getObjFileLowering(); - const_cast<TargetLoweringObjectFile&>(TLOF).Initialize(Ctx, *TM); - - const MCSubtargetInfo &STI = TM->getSubtarget<MCSubtargetInfo>(); + OwningPtr<MCInstrInfo> MCII(TheTarget->createMCInstrInfo()); + OwningPtr<MCSubtargetInfo> + STI(TheTarget->createMCSubtargetInfo(Opts.Triple, "", "")); // FIXME: There is a bit of code duplication with addPassesToEmitFile. if (Opts.OutputType == AssemblerInvocation::FT_Asm) { @@ -301,7 +286,7 @@ static bool ExecuteAssembler(AssemblerInvocation &Opts, Diagnostic &Diags) { MCCodeEmitter *CE = 0; MCAsmBackend *MAB = 0; if (Opts.ShowEncoding) { - CE = TheTarget->createMCCodeEmitter(*TM->getInstrInfo(), STI, Ctx); + CE = TheTarget->createMCCodeEmitter(*MCII, *STI, Ctx); MAB = TheTarget->createMCAsmBackend(Opts.Triple); } Str.reset(TheTarget->createAsmStreamer(Ctx, *Out, /*asmverbose*/true, @@ -313,8 +298,7 @@ static bool ExecuteAssembler(AssemblerInvocation &Opts, Diagnostic &Diags) { } else { assert(Opts.OutputType == AssemblerInvocation::FT_Obj && "Invalid file type!"); - MCCodeEmitter *CE = TheTarget->createMCCodeEmitter(*TM->getInstrInfo(), - STI, Ctx); + MCCodeEmitter *CE = TheTarget->createMCCodeEmitter(*MCII, *STI, Ctx); MCAsmBackend *MAB = TheTarget->createMCAsmBackend(Opts.Triple); Str.reset(TheTarget->createMCObjectStreamer(Opts.Triple, Ctx, *MAB, *Out, CE, Opts.RelaxAll, @@ -324,9 +308,7 @@ static bool ExecuteAssembler(AssemblerInvocation &Opts, Diagnostic &Diags) { OwningPtr<MCAsmParser> Parser(createMCAsmParser(*TheTarget, SrcMgr, Ctx, *Str.get(), *MAI)); - OwningPtr<MCTargetAsmParser> - TAP(TheTarget->createMCAsmParser(const_cast<MCSubtargetInfo&>(STI), - *Parser)); + OwningPtr<MCTargetAsmParser> TAP(TheTarget->createMCAsmParser(*STI, *Parser)); if (!TAP) { Diags.Report(diag::err_target_unknown_triple) << Opts.Triple; return false; |