[Mips][CodeGen] Remove MachineFunction::setSubtarget. Change Mips to just copy the...
authorCraig Topper <craig.topper@intel.com>
Wed, 24 Apr 2019 06:48:31 +0000 (06:48 +0000)
committerCraig Topper <craig.topper@intel.com>
Wed, 24 Apr 2019 06:48:31 +0000 (06:48 +0000)
Summary:
The MachineFunction should have been created with the correct subtarget. As
long as there is no way to change it, MipsTargetMachine can just capture it
directly from the MachineFunction without calling getSubtargetImpl again.

While there, const correct the Subtarget pointer to avoid a const_cast.

I believe the Mips16Subtarget and NoMips16Subtarget members are never used, but
I'll leave there removal for a separate patch.

Reviewers: echristo, atanasyan

Reviewed By: atanasyan

Subscribers: sdardis, arichardson, hiraditya, jrtc27, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D60936

llvm-svn: 359071

llvm/include/llvm/CodeGen/MachineFunction.h
llvm/lib/Target/Mips/MipsTargetMachine.cpp
llvm/lib/Target/Mips/MipsTargetMachine.h

index 3d07c49cb6440c396f827b0c7125b6a149ace52b..65fa72b2793891e3ea454767964e28beb6c39783 100644 (file)
@@ -439,7 +439,6 @@ public:
   /// getSubtarget - Return the subtarget for which this machine code is being
   /// compiled.
   const TargetSubtargetInfo &getSubtarget() const { return *STI; }
-  void setSubtarget(const TargetSubtargetInfo *ST) { STI = ST; }
 
   /// getSubtarget - This method returns a pointer to the specified type of
   /// TargetSubtargetInfo.  In debug builds, it verifies that the object being
index 591e2c4b70677a2405a2ea116e18ae21345c857f..83094618ba0e4090dcbd481be45594adf8aa801f 100644 (file)
@@ -204,8 +204,7 @@ MipsTargetMachine::getSubtargetImpl(const Function &F) const {
 void MipsTargetMachine::resetSubtarget(MachineFunction *MF) {
   LLVM_DEBUG(dbgs() << "resetSubtarget\n");
 
-  Subtarget = const_cast<MipsSubtarget *>(getSubtargetImpl(MF->getFunction()));
-  MF->setSubtarget(Subtarget);
+  Subtarget = &MF->getSubtarget<MipsSubtarget>();
 }
 
 namespace {
index a51f35511b5de97179fd789ebded108cc1352b8b..25300504a02dc5be4a094faf01969c5a463e84ce 100644 (file)
@@ -29,7 +29,7 @@ class MipsTargetMachine : public LLVMTargetMachine {
   std::unique_ptr<TargetLoweringObjectFile> TLOF;
   // Selected ABI
   MipsABIInfo ABI;
-  MipsSubtarget *Subtarget;
+  const MipsSubtarget *Subtarget;
   MipsSubtarget DefaultSubtarget;
   MipsSubtarget NoMips16Subtarget;
   MipsSubtarget Mips16Subtarget;