From bd14dc519ca2a0fc15f67288e25cdab4e84d9e98 Mon Sep 17 00:00:00 2001 From: Eric Christopher Date: Thu, 12 Jun 2014 22:05:46 +0000 Subject: [PATCH] Move PPCInstrInfo off of the target machine and onto the subtarget. llvm-svn: 210839 --- llvm/lib/Target/PowerPC/PPCSubtarget.cpp | 2 +- llvm/lib/Target/PowerPC/PPCSubtarget.h | 3 +++ llvm/lib/Target/PowerPC/PPCTargetMachine.cpp | 4 ++-- llvm/lib/Target/PowerPC/PPCTargetMachine.h | 9 +++++---- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp index 899a27b..3559028 100644 --- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp +++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp @@ -80,7 +80,7 @@ PPCSubtarget::PPCSubtarget(const std::string &TT, const std::string &CPU, : PPCGenSubtargetInfo(TT, CPU, FS), IsPPC64(is64Bit), TargetTriple(TT), OptLevel(OptLevel), FrameLowering(initializeSubtargetDependencies(CPU, FS)), - DL(getDataLayoutString(*this)) {} + DL(getDataLayoutString(*this)), InstrInfo(*this) {} /// SetJITMode - This is called to inform the subtarget info that we are /// producing code for the JIT. diff --git a/llvm/lib/Target/PowerPC/PPCSubtarget.h b/llvm/lib/Target/PowerPC/PPCSubtarget.h index 55145d3..9d4c264 100644 --- a/llvm/lib/Target/PowerPC/PPCSubtarget.h +++ b/llvm/lib/Target/PowerPC/PPCSubtarget.h @@ -15,6 +15,7 @@ #define POWERPCSUBTARGET_H #include "PPCFrameLowering.h" +#include "PPCInstrInfo.h" #include "llvm/ADT/Triple.h" #include "llvm/IR/DataLayout.h" #include "llvm/MC/MCInstrItineraries.h" @@ -106,6 +107,7 @@ protected: PPCFrameLowering FrameLowering; const DataLayout DL; + PPCInstrInfo InstrInfo; public: /// This constructor initializes the data members to match that @@ -138,6 +140,7 @@ public: const PPCFrameLowering *getFrameLowering() const { return &FrameLowering; } const DataLayout *getDataLayout() const { return &DL; } + const PPCInstrInfo *getInstrInfo() const { return &InstrInfo; } /// initializeSubtargetDependencies - Initializes using a CPU and feature string /// so that we can use initializer lists for subtarget initialization. diff --git a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp index 869fe89..4e04dfa 100644 --- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp +++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp @@ -42,8 +42,8 @@ PPCTargetMachine::PPCTargetMachine(const Target &T, StringRef TT, StringRef CPU, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL, bool is64Bit) : LLVMTargetMachine(T, TT, CPU, FS, Options, RM, CM, OL), - Subtarget(TT, CPU, FS, is64Bit, OL), InstrInfo(Subtarget), - JITInfo(*this, is64Bit), TLInfo(*this), TSInfo(*this) { + Subtarget(TT, CPU, FS, is64Bit, OL), JITInfo(*this, is64Bit), + TLInfo(*this), TSInfo(*this) { initAsmInfo(); } diff --git a/llvm/lib/Target/PowerPC/PPCTargetMachine.h b/llvm/lib/Target/PowerPC/PPCTargetMachine.h index 632c406..ecfdf27 100644 --- a/llvm/lib/Target/PowerPC/PPCTargetMachine.h +++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.h @@ -29,7 +29,6 @@ namespace llvm { /// class PPCTargetMachine : public LLVMTargetMachine { PPCSubtarget Subtarget; - PPCInstrInfo InstrInfo; PPCJITInfo JITInfo; PPCTargetLowering TLInfo; PPCSelectionDAGInfo TSInfo; @@ -40,7 +39,9 @@ public: Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL, bool is64Bit); - const PPCInstrInfo *getInstrInfo() const override { return &InstrInfo; } + const PPCInstrInfo *getInstrInfo() const override { + return getSubtargetImpl()->getInstrInfo(); + } const PPCFrameLowering *getFrameLowering() const override { return getSubtargetImpl()->getFrameLowering(); } @@ -51,8 +52,8 @@ public: const PPCSelectionDAGInfo* getSelectionDAGInfo() const override { return &TSInfo; } - const PPCRegisterInfo *getRegisterInfo() const override { - return &InstrInfo.getRegisterInfo(); + const PPCRegisterInfo *getRegisterInfo() const override { + return &getInstrInfo()->getRegisterInfo(); } const DataLayout *getDataLayout() const override { -- 2.7.4