From ffc0e73046f737d75e0a62b3a83ef19bcef111e3 Mon Sep 17 00:00:00 2001 From: Evan Cheng Date: Sat, 9 Jul 2011 05:47:46 +0000 Subject: Change createAsmParser to take a MCSubtargetInfo instead of triple, CPU, and feature string. Parsing some asm directives can change subtarget state (e.g. .code 16) and it must be reflected in other modules (e.g. MCCodeEmitter). That is, the MCSubtargetInfo instance must be shared. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134795 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/lto/LTOModule.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'tools/lto') diff --git a/tools/lto/LTOModule.cpp b/tools/lto/LTOModule.cpp index 1794c9755b..83fdbbe7d2 100644 --- a/tools/lto/LTOModule.cpp +++ b/tools/lto/LTOModule.cpp @@ -35,6 +35,7 @@ #include "llvm/MC/MCInst.h" #include "llvm/MC/MCParser/MCAsmParser.h" #include "llvm/MC/MCStreamer.h" +#include "llvm/MC/MCSubtargetInfo.h" #include "llvm/MC/MCSymbol.h" #include "llvm/MC/SubtargetFeature.h" #include "llvm/Target/TargetAsmParser.h" @@ -618,11 +619,12 @@ bool LTOModule::addAsmGlobalSymbols(MCContext &Context) { OwningPtr Parser(createMCAsmParser(_target->getTarget(), SrcMgr, Context, *Streamer, *_target->getMCAsmInfo())); + OwningPtr STI(_target->getTarget(). + createMCSubtargetInfo(_target->getTargetTriple(), + _target->getTargetCPU(), + _target->getTargetFeatureString())); OwningPtr - TAP(_target->getTarget().createAsmParser(_target->getTargetTriple(), - _target->getTargetCPU(), - _target->getTargetFeatureString(), - *Parser.get())); + TAP(_target->getTarget().createAsmParser(*STI, *Parser.get())); Parser->setTargetParser(*TAP); int Res = Parser->Run(false); if (Res) -- cgit v1.2.3