Migrate the AArch64 TargetRegisterInfo to its TargetMachine
[oota-llvm.git] / lib / Target / AArch64 / AArch64Subtarget.h
index e47d13aae4c26e6eac7943bb014987f96da93662..14cc5d2d9080eab09145cc81928da84aa0acf75c 100644 (file)
@@ -56,6 +56,7 @@ protected:
   /// TargetTriple - What processor and OS we're targeting.
   Triple TargetTriple;
 
+  const AArch64TargetMachine &TM;
   AArch64FrameLowering FrameLowering;
   AArch64InstrInfo InstrInfo;
   AArch64SelectionDAGInfo TSInfo;
@@ -70,7 +71,7 @@ public:
   /// This constructor initializes the data members to match that
   /// of the specified triple.
   AArch64Subtarget(const std::string &TT, const std::string &CPU,
-                   const std::string &FS, const TargetMachine &TM,
+                   const std::string &FS, const AArch64TargetMachine &TM,
                    bool LittleEndian);
 
   const AArch64SelectionDAGInfo *getSelectionDAGInfo() const override {
@@ -83,9 +84,8 @@ public:
     return &TLInfo;
   }
   const AArch64InstrInfo *getInstrInfo() const override { return &InstrInfo; }
-  const AArch64RegisterInfo *getRegisterInfo() const override {
-    return &getInstrInfo()->getRegisterInfo();
-  }
+  const AArch64TargetMachine &getTargetMachine() const { return TM; }
+  const AArch64RegisterInfo *getRegisterInfo() const override;
   const Triple &getTargetTriple() const { return TargetTriple; }
   bool enableMachineScheduler() const override { return true; }
   bool enablePostMachineScheduler() const override {