Remove the use of the subtarget in MCCodeEmitter creation and

update all ports accordingly. Required a couple of small rewrites
in handling subtarget features during creation in PPC.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231861 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eric Christopher 2015-03-10 22:03:14 +00:00
parent f3d745cdc9
commit 57849e3bb4
26 changed files with 29 additions and 67 deletions

View File

@ -125,7 +125,6 @@ namespace llvm {
const MCSubtargetInfo &STI); const MCSubtargetInfo &STI);
typedef MCCodeEmitter *(*MCCodeEmitterCtorTy)(const MCInstrInfo &II, typedef MCCodeEmitter *(*MCCodeEmitterCtorTy)(const MCInstrInfo &II,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx); MCContext &Ctx);
typedef MCStreamer *(*MCObjectStreamerCtorTy)( typedef MCStreamer *(*MCObjectStreamerCtorTy)(
const Target &T, StringRef TT, MCContext &Ctx, MCAsmBackend &TAB, const Target &T, StringRef TT, MCContext &Ctx, MCAsmBackend &TAB,
@ -406,11 +405,10 @@ namespace llvm {
/// createMCCodeEmitter - Create a target specific code emitter. /// createMCCodeEmitter - Create a target specific code emitter.
MCCodeEmitter *createMCCodeEmitter(const MCInstrInfo &II, MCCodeEmitter *createMCCodeEmitter(const MCInstrInfo &II,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx) const { MCContext &Ctx) const {
if (!MCCodeEmitterCtorFn) if (!MCCodeEmitterCtorFn)
return nullptr; return nullptr;
return MCCodeEmitterCtorFn(II, MRI, STI, Ctx); return MCCodeEmitterCtorFn(II, MRI, Ctx);
} }
/// createMCObjectStreamer - Create a target specific MCStreamer. /// createMCObjectStreamer - Create a target specific MCStreamer.
@ -1154,7 +1152,6 @@ namespace llvm {
private: private:
static MCCodeEmitter *Allocator(const MCInstrInfo & /*II*/, static MCCodeEmitter *Allocator(const MCInstrInfo & /*II*/,
const MCRegisterInfo & /*MRI*/, const MCRegisterInfo & /*MRI*/,
const MCSubtargetInfo &/*STI*/,
MCContext & /*Ctx*/) { MCContext & /*Ctx*/) {
return new MCCodeEmitterImpl(); return new MCCodeEmitterImpl();
} }

View File

@ -176,7 +176,7 @@ bool LLVMTargetMachine::addPassesToEmitFile(PassManagerBase &PM,
// Create a code emitter if asked to show the encoding. // Create a code emitter if asked to show the encoding.
MCCodeEmitter *MCE = nullptr; MCCodeEmitter *MCE = nullptr;
if (Options.MCOptions.ShowMCEncoding) if (Options.MCOptions.ShowMCEncoding)
MCE = getTarget().createMCCodeEmitter(MII, MRI, STI, *Context); MCE = getTarget().createMCCodeEmitter(MII, MRI, *Context);
MCAsmBackend *MAB = getTarget().createMCAsmBackend(MRI, getTargetTriple(), MCAsmBackend *MAB = getTarget().createMCAsmBackend(MRI, getTargetTriple(),
TargetCPU); TargetCPU);
@ -190,8 +190,7 @@ bool LLVMTargetMachine::addPassesToEmitFile(PassManagerBase &PM,
case CGFT_ObjectFile: { case CGFT_ObjectFile: {
// Create the code emitter for the target if it exists. If not, .o file // Create the code emitter for the target if it exists. If not, .o file
// emission fails. // emission fails.
MCCodeEmitter *MCE = getTarget().createMCCodeEmitter(MII, MRI, STI, MCCodeEmitter *MCE = getTarget().createMCCodeEmitter(MII, MRI, *Context);
*Context);
MCAsmBackend *MAB = getTarget().createMCAsmBackend(MRI, getTargetTriple(), MCAsmBackend *MAB = getTarget().createMCAsmBackend(MRI, getTargetTriple(),
TargetCPU); TargetCPU);
if (!MCE || !MAB) if (!MCE || !MAB)
@ -243,7 +242,7 @@ bool LLVMTargetMachine::addPassesToEmitMC(PassManagerBase &PM,
const MCRegisterInfo &MRI = *getSubtargetImpl()->getRegisterInfo(); const MCRegisterInfo &MRI = *getSubtargetImpl()->getRegisterInfo();
const MCSubtargetInfo &STI = getSubtarget<MCSubtargetInfo>(); const MCSubtargetInfo &STI = getSubtarget<MCSubtargetInfo>();
MCCodeEmitter *MCE = getTarget().createMCCodeEmitter( MCCodeEmitter *MCE = getTarget().createMCCodeEmitter(
*getSubtargetImpl()->getInstrInfo(), MRI, STI, *Ctx); *getSubtargetImpl()->getInstrInfo(), MRI, *Ctx);
MCAsmBackend *MAB = getTarget().createMCAsmBackend(MRI, getTargetTriple(), MCAsmBackend *MAB = getTarget().createMCAsmBackend(MRI, getTargetTriple(),
TargetCPU); TargetCPU);
if (!MCE || !MAB) if (!MCE || !MAB)

View File

@ -38,9 +38,7 @@ class AArch64MCCodeEmitter : public MCCodeEmitter {
AArch64MCCodeEmitter(const AArch64MCCodeEmitter &); // DO NOT IMPLEMENT AArch64MCCodeEmitter(const AArch64MCCodeEmitter &); // DO NOT IMPLEMENT
void operator=(const AArch64MCCodeEmitter &); // DO NOT IMPLEMENT void operator=(const AArch64MCCodeEmitter &); // DO NOT IMPLEMENT
public: public:
AArch64MCCodeEmitter(const MCInstrInfo &mcii, const MCSubtargetInfo &sti, AArch64MCCodeEmitter(const MCInstrInfo &mcii, MCContext &ctx) : Ctx(ctx) {}
MCContext &ctx)
: Ctx(ctx) {}
~AArch64MCCodeEmitter() {} ~AArch64MCCodeEmitter() {}
@ -205,9 +203,8 @@ public:
MCCodeEmitter *llvm::createAArch64MCCodeEmitter(const MCInstrInfo &MCII, MCCodeEmitter *llvm::createAArch64MCCodeEmitter(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx) { MCContext &Ctx) {
return new AArch64MCCodeEmitter(MCII, STI, Ctx); return new AArch64MCCodeEmitter(MCII, Ctx);
} }
/// getMachineOpValue - Return binary encoding of operand. If the machine /// getMachineOpValue - Return binary encoding of operand. If the machine

View File

@ -38,7 +38,6 @@ extern Target TheARM64Target;
MCCodeEmitter *createAArch64MCCodeEmitter(const MCInstrInfo &MCII, MCCodeEmitter *createAArch64MCCodeEmitter(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx); MCContext &Ctx);
MCAsmBackend *createAArch64leAsmBackend(const Target &T, MCAsmBackend *createAArch64leAsmBackend(const Target &T,
const MCRegisterInfo &MRI, StringRef TT, const MCRegisterInfo &MRI, StringRef TT,

View File

@ -441,14 +441,12 @@ public:
MCCodeEmitter *llvm::createARMLEMCCodeEmitter(const MCInstrInfo &MCII, MCCodeEmitter *llvm::createARMLEMCCodeEmitter(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx) { MCContext &Ctx) {
return new ARMMCCodeEmitter(MCII, Ctx, true); return new ARMMCCodeEmitter(MCII, Ctx, true);
} }
MCCodeEmitter *llvm::createARMBEMCCodeEmitter(const MCInstrInfo &MCII, MCCodeEmitter *llvm::createARMBEMCCodeEmitter(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx) { MCContext &Ctx) {
return new ARMMCCodeEmitter(MCII, Ctx, false); return new ARMMCCodeEmitter(MCII, Ctx, false);
} }

View File

@ -56,12 +56,10 @@ MCTargetStreamer *createARMNullTargetStreamer(MCStreamer &S);
MCCodeEmitter *createARMLEMCCodeEmitter(const MCInstrInfo &MCII, MCCodeEmitter *createARMLEMCCodeEmitter(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx); MCContext &Ctx);
MCCodeEmitter *createARMBEMCCodeEmitter(const MCInstrInfo &MCII, MCCodeEmitter *createARMBEMCCodeEmitter(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx); MCContext &Ctx);
MCAsmBackend *createARMAsmBackend(const Target &T, const MCRegisterInfo &MRI, MCAsmBackend *createARMAsmBackend(const Target &T, const MCRegisterInfo &MRI,

View File

@ -49,9 +49,8 @@ void emitLittleEndian(uint64_t Binary, raw_ostream &OS) {
} }
HexagonMCCodeEmitter::HexagonMCCodeEmitter(MCInstrInfo const &aMII, HexagonMCCodeEmitter::HexagonMCCodeEmitter(MCInstrInfo const &aMII,
MCSubtargetInfo const &aMST,
MCContext &aMCT) MCContext &aMCT)
: MST(aMST), MCT(aMCT), MCII (aMII) {} : MCT(aMCT), MCII(aMII) {}
void HexagonMCCodeEmitter::EncodeInstruction(MCInst const &MI, raw_ostream &OS, void HexagonMCCodeEmitter::EncodeInstruction(MCInst const &MI, raw_ostream &OS,
SmallVectorImpl<MCFixup> &Fixups, SmallVectorImpl<MCFixup> &Fixups,
@ -75,15 +74,10 @@ HexagonMCCodeEmitter::getMachineOpValue(MCInst const &MI, MCOperand const &MO,
llvm_unreachable("Only Immediates and Registers implemented right now"); llvm_unreachable("Only Immediates and Registers implemented right now");
} }
MCSubtargetInfo const &HexagonMCCodeEmitter::getSubtargetInfo() const {
return MST;
}
MCCodeEmitter *llvm::createHexagonMCCodeEmitter(MCInstrInfo const &MII, MCCodeEmitter *llvm::createHexagonMCCodeEmitter(MCInstrInfo const &MII,
MCRegisterInfo const &MRI, MCRegisterInfo const &MRI,
MCSubtargetInfo const &MST,
MCContext &MCT) { MCContext &MCT) {
return new HexagonMCCodeEmitter(MII, MST, MCT); return new HexagonMCCodeEmitter(MII, MCT);
} }
#include "HexagonGenMCCodeEmitter.inc" #include "HexagonGenMCCodeEmitter.inc"

View File

@ -26,13 +26,11 @@
namespace llvm { namespace llvm {
class HexagonMCCodeEmitter : public MCCodeEmitter { class HexagonMCCodeEmitter : public MCCodeEmitter {
MCSubtargetInfo const &MST;
MCContext &MCT; MCContext &MCT;
MCInstrInfo const &MCII; MCInstrInfo const &MCII;
public: public:
HexagonMCCodeEmitter(MCInstrInfo const &aMII, MCSubtargetInfo const &aMST, HexagonMCCodeEmitter(MCInstrInfo const &aMII, MCContext &aMCT);
MCContext &aMCT);
MCSubtargetInfo const &getSubtargetInfo() const; MCSubtargetInfo const &getSubtargetInfo() const;

View File

@ -34,7 +34,6 @@ MCInstrInfo *createHexagonMCInstrInfo();
MCCodeEmitter *createHexagonMCCodeEmitter(MCInstrInfo const &MCII, MCCodeEmitter *createHexagonMCCodeEmitter(MCInstrInfo const &MCII,
MCRegisterInfo const &MRI, MCRegisterInfo const &MRI,
MCSubtargetInfo const &MST,
MCContext &MCT); MCContext &MCT);
MCAsmBackend *createHexagonAsmBackend(Target const &T, MCAsmBackend *createHexagonAsmBackend(Target const &T,

View File

@ -35,14 +35,12 @@
namespace llvm { namespace llvm {
MCCodeEmitter *createMipsMCCodeEmitterEB(const MCInstrInfo &MCII, MCCodeEmitter *createMipsMCCodeEmitterEB(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx) { MCContext &Ctx) {
return new MipsMCCodeEmitter(MCII, Ctx, false); return new MipsMCCodeEmitter(MCII, Ctx, false);
} }
MCCodeEmitter *createMipsMCCodeEmitterEL(const MCInstrInfo &MCII, MCCodeEmitter *createMipsMCCodeEmitterEL(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx) { MCContext &Ctx) {
return new MipsMCCodeEmitter(MCII, Ctx, true); return new MipsMCCodeEmitter(MCII, Ctx, true);
} }

View File

@ -35,11 +35,9 @@ extern Target TheMips64elTarget;
MCCodeEmitter *createMipsMCCodeEmitterEB(const MCInstrInfo &MCII, MCCodeEmitter *createMipsMCCodeEmitterEB(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx); MCContext &Ctx);
MCCodeEmitter *createMipsMCCodeEmitterEL(const MCInstrInfo &MCII, MCCodeEmitter *createMipsMCCodeEmitterEL(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx); MCContext &Ctx);
MCAsmBackend *createMipsAsmBackendEB32(const Target &T, MCAsmBackend *createMipsAsmBackendEB32(const Target &T,

View File

@ -14,6 +14,7 @@
#include "MCTargetDesc/PPCMCTargetDesc.h" #include "MCTargetDesc/PPCMCTargetDesc.h"
#include "MCTargetDesc/PPCFixupKinds.h" #include "MCTargetDesc/PPCFixupKinds.h"
#include "llvm/ADT/Statistic.h" #include "llvm/ADT/Statistic.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCCodeEmitter.h" #include "llvm/MC/MCCodeEmitter.h"
#include "llvm/MC/MCContext.h" #include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h" #include "llvm/MC/MCExpr.h"
@ -39,9 +40,9 @@ class PPCMCCodeEmitter : public MCCodeEmitter {
bool IsLittleEndian; bool IsLittleEndian;
public: public:
PPCMCCodeEmitter(const MCInstrInfo &mcii, MCContext &ctx, bool isLittle) PPCMCCodeEmitter(const MCInstrInfo &mcii, MCContext &ctx)
: MCII(mcii), CTX(ctx), IsLittleEndian(isLittle) { : MCII(mcii), CTX(ctx),
} IsLittleEndian(ctx.getAsmInfo()->isLittleEndian()) {}
~PPCMCCodeEmitter() {} ~PPCMCCodeEmitter() {}
@ -161,11 +162,8 @@ public:
MCCodeEmitter *llvm::createPPCMCCodeEmitter(const MCInstrInfo &MCII, MCCodeEmitter *llvm::createPPCMCCodeEmitter(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx) { MCContext &Ctx) {
Triple TT(STI.getTargetTriple()); return new PPCMCCodeEmitter(MCII, Ctx);
bool IsLittleEndian = TT.getArch() == Triple::ppc64le;
return new PPCMCCodeEmitter(MCII, Ctx, IsLittleEndian);
} }
unsigned PPCMCCodeEmitter:: unsigned PPCMCCodeEmitter::

View File

@ -37,7 +37,6 @@ extern Target ThePPC64LETarget;
MCCodeEmitter *createPPCMCCodeEmitter(const MCInstrInfo &MCII, MCCodeEmitter *createPPCMCCodeEmitter(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx); MCContext &Ctx);
MCAsmBackend *createPPCAsmBackend(const Target &T, const MCRegisterInfo &MRI, MCAsmBackend *createPPCAsmBackend(const Target &T, const MCRegisterInfo &MRI,

View File

@ -17,6 +17,7 @@
#include "InstPrinter/AMDGPUInstPrinter.h" #include "InstPrinter/AMDGPUInstPrinter.h"
#include "SIDefines.h" #include "SIDefines.h"
#include "llvm/MC/MCCodeGenInfo.h" #include "llvm/MC/MCCodeGenInfo.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCInstrInfo.h" #include "llvm/MC/MCInstrInfo.h"
#include "llvm/MC/MCRegisterInfo.h" #include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCStreamer.h" #include "llvm/MC/MCStreamer.h"

View File

@ -35,12 +35,10 @@ extern Target TheGCNTarget;
MCCodeEmitter *createR600MCCodeEmitter(const MCInstrInfo &MCII, MCCodeEmitter *createR600MCCodeEmitter(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx); MCContext &Ctx);
MCCodeEmitter *createSIMCCodeEmitter(const MCInstrInfo &MCII, MCCodeEmitter *createSIMCCodeEmitter(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx); MCContext &Ctx);
MCAsmBackend *createAMDGPUAsmBackend(const Target &T, const MCRegisterInfo &MRI, MCAsmBackend *createAMDGPUAsmBackend(const Target &T, const MCRegisterInfo &MRI,

View File

@ -82,7 +82,6 @@ enum FCInstr {
MCCodeEmitter *llvm::createR600MCCodeEmitter(const MCInstrInfo &MCII, MCCodeEmitter *llvm::createR600MCCodeEmitter(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx) { MCContext &Ctx) {
return new R600MCCodeEmitter(MCII, MRI); return new R600MCCodeEmitter(MCII, MRI);
} }

View File

@ -72,7 +72,6 @@ public:
MCCodeEmitter *llvm::createSIMCCodeEmitter(const MCInstrInfo &MCII, MCCodeEmitter *llvm::createSIMCCodeEmitter(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx) { MCContext &Ctx) {
return new SIMCCodeEmitter(MCII, MRI, Ctx); return new SIMCCodeEmitter(MCII, MRI, Ctx);
} }

View File

@ -74,7 +74,6 @@ public:
MCCodeEmitter *llvm::createSparcMCCodeEmitter(const MCInstrInfo &MCII, MCCodeEmitter *llvm::createSparcMCCodeEmitter(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx) { MCContext &Ctx) {
return new SparcMCCodeEmitter(Ctx); return new SparcMCCodeEmitter(Ctx);
} }

View File

@ -33,7 +33,6 @@ extern Target TheSparcV9Target;
MCCodeEmitter *createSparcMCCodeEmitter(const MCInstrInfo &MCII, MCCodeEmitter *createSparcMCCodeEmitter(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx); MCContext &Ctx);
MCAsmBackend *createSparcAsmBackend(const Target &T, MCAsmBackend *createSparcAsmBackend(const Target &T,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,

View File

@ -110,7 +110,6 @@ private:
MCCodeEmitter *llvm::createSystemZMCCodeEmitter(const MCInstrInfo &MCII, MCCodeEmitter *llvm::createSystemZMCCodeEmitter(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &MCSTI,
MCContext &Ctx) { MCContext &Ctx) {
return new SystemZMCCodeEmitter(MCII, Ctx); return new SystemZMCCodeEmitter(MCII, Ctx);
} }

View File

@ -71,7 +71,6 @@ inline unsigned getRegAsGRH32(unsigned Reg) {
MCCodeEmitter *createSystemZMCCodeEmitter(const MCInstrInfo &MCII, MCCodeEmitter *createSystemZMCCodeEmitter(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx); MCContext &Ctx);
MCAsmBackend *createSystemZMCAsmBackend(const Target &T, MCAsmBackend *createSystemZMCAsmBackend(const Target &T,

View File

@ -168,10 +168,8 @@ public:
} // end anonymous namespace } // end anonymous namespace
MCCodeEmitter *llvm::createX86MCCodeEmitter(const MCInstrInfo &MCII, MCCodeEmitter *llvm::createX86MCCodeEmitter(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx) { MCContext &Ctx) {
return new X86MCCodeEmitter(MCII, Ctx); return new X86MCCodeEmitter(MCII, Ctx);
} }

View File

@ -78,7 +78,6 @@ namespace X86_MC {
MCCodeEmitter *createX86MCCodeEmitter(const MCInstrInfo &MCII, MCCodeEmitter *createX86MCCodeEmitter(const MCInstrInfo &MCII,
const MCRegisterInfo &MRI, const MCRegisterInfo &MRI,
const MCSubtargetInfo &STI,
MCContext &Ctx); MCContext &Ctx);
MCAsmBackend *createX86_32AsmBackend(const Target &T, const MCRegisterInfo &MRI, MCAsmBackend *createX86_32AsmBackend(const Target &T, const MCRegisterInfo &MRI,

View File

@ -77,8 +77,8 @@ namespace llvm {
X86AsmPrinter::StackMapShadowTracker::startFunction(MachineFunction &F) { X86AsmPrinter::StackMapShadowTracker::startFunction(MachineFunction &F) {
MF = &F; MF = &F;
CodeEmitter.reset(TM.getTarget().createMCCodeEmitter( CodeEmitter.reset(TM.getTarget().createMCCodeEmitter(
*MF->getSubtarget().getInstrInfo(), *MF->getSubtarget().getRegisterInfo(), *MF->getSubtarget().getInstrInfo(),
MF->getSubtarget(), MF->getContext())); *MF->getSubtarget().getRegisterInfo(), MF->getContext()));
} }
void X86AsmPrinter::StackMapShadowTracker::count(MCInst &Inst, void X86AsmPrinter::StackMapShadowTracker::count(MCInst &Inst,

View File

@ -316,7 +316,7 @@ bool DwarfStreamer::init(Triple TheTriple, StringRef OutputFilename) {
if (!MSTI) if (!MSTI)
return error("no subtarget info for target " + TripleName, Context); return error("no subtarget info for target " + TripleName, Context);
MCE = TheTarget->createMCCodeEmitter(*MII, *MRI, *MSTI, *MC); MCE = TheTarget->createMCCodeEmitter(*MII, *MRI, *MC);
if (!MCE) if (!MCE)
return error("no code emitter for target " + TripleName, Context); return error("no code emitter for target " + TripleName, Context);

View File

@ -457,7 +457,7 @@ int main(int argc, char **argv) {
MCCodeEmitter *CE = nullptr; MCCodeEmitter *CE = nullptr;
MCAsmBackend *MAB = nullptr; MCAsmBackend *MAB = nullptr;
if (ShowEncoding) { if (ShowEncoding) {
CE = TheTarget->createMCCodeEmitter(*MCII, *MRI, *STI, Ctx); CE = TheTarget->createMCCodeEmitter(*MCII, *MRI, Ctx);
MAB = TheTarget->createMCAsmBackend(*MRI, TripleName, MCPU); MAB = TheTarget->createMCAsmBackend(*MRI, TripleName, MCPU);
} }
Str.reset(TheTarget->createAsmStreamer(Ctx, FOS, /*asmverbose*/ true, Str.reset(TheTarget->createAsmStreamer(Ctx, FOS, /*asmverbose*/ true,
@ -468,7 +468,7 @@ int main(int argc, char **argv) {
Str.reset(TheTarget->createNullStreamer(Ctx)); Str.reset(TheTarget->createNullStreamer(Ctx));
} else { } else {
assert(FileType == OFT_ObjectFile && "Invalid file type!"); assert(FileType == OFT_ObjectFile && "Invalid file type!");
MCCodeEmitter *CE = TheTarget->createMCCodeEmitter(*MCII, *MRI, *STI, Ctx); MCCodeEmitter *CE = TheTarget->createMCCodeEmitter(*MCII, *MRI, Ctx);
MCAsmBackend *MAB = TheTarget->createMCAsmBackend(*MRI, TripleName, MCPU); MCAsmBackend *MAB = TheTarget->createMCAsmBackend(*MRI, TripleName, MCPU);
Str.reset(TheTarget->createMCObjectStreamer(TripleName, Ctx, *MAB, FOS, CE, Str.reset(TheTarget->createMCObjectStreamer(TripleName, Ctx, *MAB, FOS, CE,
*STI, RelaxAll)); *STI, RelaxAll));