From: Eric Christopher Date: Wed, 18 Mar 2015 20:41:44 +0000 (+0000) Subject: Revert "Add a TargetMachine local MCRegisterInfo and MCInstrInfo so that" X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=7648d6f293439da4acae81228e382e4d72cb52fc;p=oota-llvm.git Revert "Add a TargetMachine local MCRegisterInfo and MCInstrInfo so that" Committed too early. This reverts commit r232666. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232667 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Target/TargetMachine.h b/include/llvm/Target/TargetMachine.h index 460b758a1e3..7691b3fd505 100644 --- a/include/llvm/Target/TargetMachine.h +++ b/include/llvm/Target/TargetMachine.h @@ -30,8 +30,6 @@ class Mangler; class MCAsmInfo; class MCCodeGenInfo; class MCContext; -class MCInstrInfo; -class MCRegisterInfo; class MCSymbol; class Target; class DataLayout; @@ -88,8 +86,6 @@ protected: // Can only create subclasses. /// AsmInfo - Contains target specific asm information. /// const MCAsmInfo *AsmInfo; - const MCRegisterInfo *MRI; - const MCInstrInfo *MII; unsigned RequireStructuredCFG : 1; @@ -138,8 +134,6 @@ public: /// getMCAsmInfo - Return target specific asm information. /// const MCAsmInfo *getMCAsmInfo() const { return AsmInfo; } - const MCRegisterInfo *getMCRegisterInfo() const { return MRI; } - const MCInstrInfo *getMCInstrInfo() const { return MII; } /// getIntrinsicInfo - If intrinsic information is available, return it. If /// not, return null. diff --git a/lib/CodeGen/LLVMTargetMachine.cpp b/lib/CodeGen/LLVMTargetMachine.cpp index ac2618c7eb3..a1cdca43c86 100644 --- a/lib/CodeGen/LLVMTargetMachine.cpp +++ b/lib/CodeGen/LLVMTargetMachine.cpp @@ -47,10 +47,8 @@ EnableFastISelOption("fast-isel", cl::Hidden, cl::desc("Enable the \"fast\" instruction selector")); void LLVMTargetMachine::initAsmInfo() { - MRI = TheTarget.createMCRegInfo(getTargetTriple()); - MII = TheTarget.createMCInstrInfo(); - - MCAsmInfo *TmpAsmInfo = TheTarget.createMCAsmInfo(*MRI, getTargetTriple()); + MCAsmInfo *TmpAsmInfo = TheTarget.createMCAsmInfo( + *getSubtargetImpl()->getRegisterInfo(), getTargetTriple()); // TargetSelect.h moved to a different directory between LLVM 2.9 and 3.0, // and if the old one gets included then MCAsmInfo will be NULL and // we'll crash later. @@ -166,15 +164,15 @@ bool LLVMTargetMachine::addPassesToEmitFile(PassManagerBase &PM, const MCSubtargetInfo &STI = getSubtarget(); const MCAsmInfo &MAI = *getMCAsmInfo(); - const MCRegisterInfo &MRI = *getMCRegisterInfo(); - const MCInstrInfo &MII = *getMCInstrInfo(); - + const MCRegisterInfo &MRI = *getSubtargetImpl()->getRegisterInfo(); + const MCInstrInfo &MII = *getSubtargetImpl()->getInstrInfo(); std::unique_ptr AsmStreamer; switch (FileType) { case CGFT_AssemblyFile: { - MCInstPrinter *InstPrinter = getTarget().createMCInstPrinter( - MAI.getAssemblerDialect(), MAI, MII, MRI, STI); + MCInstPrinter *InstPrinter = + getTarget().createMCInstPrinter(MAI.getAssemblerDialect(), MAI, + MII, MRI, STI); // Create a code emitter if asked to show the encoding. MCCodeEmitter *MCE = nullptr; @@ -241,7 +239,8 @@ bool LLVMTargetMachine::addPassesToEmitMC(PassManagerBase &PM, // Create the code emitter for the target if it exists. If not, .o file // emission fails. - const MCRegisterInfo &MRI = *getMCRegisterInfo(); + const MCRegisterInfo &MRI = *getSubtargetImpl()->getRegisterInfo(); + const MCSubtargetInfo &STI = getSubtarget(); MCCodeEmitter *MCE = getTarget().createMCCodeEmitter( *getSubtargetImpl()->getInstrInfo(), MRI, *Ctx); MCAsmBackend *MAB = getTarget().createMCAsmBackend(MRI, getTargetTriple(), @@ -250,7 +249,6 @@ bool LLVMTargetMachine::addPassesToEmitMC(PassManagerBase &PM, return true; Triple T(getTargetTriple()); - const MCSubtargetInfo &STI = getSubtarget(); std::unique_ptr AsmStreamer(getTarget().createMCObjectStreamer( T, *Ctx, *MAB, Out, MCE, STI, Options.MCOptions.MCRelaxAll)); diff --git a/lib/Target/TargetMachine.cpp b/lib/Target/TargetMachine.cpp index 0913af3d7d2..56e7e8b24bd 100644 --- a/lib/Target/TargetMachine.cpp +++ b/lib/Target/TargetMachine.cpp @@ -40,14 +40,12 @@ TargetMachine::TargetMachine(const Target &T, StringRef DataLayoutString, StringRef TT, StringRef CPU, StringRef FS, const TargetOptions &Options) : TheTarget(T), DL(DataLayoutString), TargetTriple(TT), TargetCPU(CPU), - TargetFS(FS), CodeGenInfo(nullptr), AsmInfo(nullptr), MII(nullptr), - MRI(nullptr), RequireStructuredCFG(false), Options(Options) {} + TargetFS(FS), CodeGenInfo(nullptr), AsmInfo(nullptr), + RequireStructuredCFG(false), Options(Options) {} TargetMachine::~TargetMachine() { delete CodeGenInfo; delete AsmInfo; - delete MII; - delete MRI; } /// \brief Reset the target options based on the function's attributes.