Don't generate getCalleeSaveReg and getCalleeSaveRegClasses anymore.
authorEvan Cheng <evan.cheng@apple.com>
Thu, 18 May 2006 00:08:46 +0000 (00:08 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Thu, 18 May 2006 00:08:46 +0000 (00:08 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28376 91177308-0d34-0410-b5e6-96231b3b80d8

utils/TableGen/CodeGenTarget.cpp
utils/TableGen/CodeGenTarget.h
utils/TableGen/RegisterInfoEmitter.cpp

index 10ec6fec13e522ebba000a38fdaa9e29ba808eae..30198fce36c94838c6d2b49f9ad2bfb110ed7241 100644 (file)
@@ -108,9 +108,6 @@ CodeGenTarget::CodeGenTarget() {
   if (Targets.size() != 1)
     throw std::string("ERROR: Multiple subclasses of Target defined!");
   TargetRec = Targets[0];
-
-  // Read in all of the CalleeSavedRegisters.
-  CalleeSavedRegisters =TargetRec->getValueAsListOfDefs("CalleeSavedRegisters");
 }
 
 
index f1f13fabd9a3e179c4e18e069e8a0c8e1a76e75d..dd58d929f8864460367098803661f109c0a21ef9 100644 (file)
@@ -42,7 +42,6 @@ std::string getEnumName(MVT::ValueType T);
 ///
 class CodeGenTarget {
   Record *TargetRec;
-  std::vector<Record*> CalleeSavedRegisters;
 
   mutable std::map<std::string, CodeGenInstruction> Instructions;
   mutable std::vector<CodeGenRegister> Registers;
@@ -58,10 +57,6 @@ public:
   Record *getTargetRecord() const { return TargetRec; }
   const std::string &getName() const;
 
-  const std::vector<Record*> &getCalleeSavedRegisters() const {
-    return CalleeSavedRegisters;
-  }
-
   /// getInstructionSet - Return the InstructionSet object.
   ///
   Record *getInstructionSet() const;
index 51b88421366220268475a80eed2d1ce3415cb9f4..0c97fafc20bf7bfe2b4641c4820e2942efde546e 100644 (file)
@@ -59,8 +59,6 @@ void RegisterInfoEmitter::runHeader(std::ostream &OS) {
   OS << "struct " << ClassName << " : public MRegisterInfo {\n"
      << "  " << ClassName
      << "(int CallFrameSetupOpcode = -1, int CallFrameDestroyOpcode = -1);\n"
-     << "  const unsigned* getCalleeSaveRegs() const;\n"
-     << "  const TargetRegisterClass* const *getCalleeSaveRegClasses() const;\n"
      << "  int getDwarfRegNum(unsigned RegNum) const;\n"
      << "};\n\n";
 
@@ -333,36 +331,6 @@ void RegisterInfoEmitter::run(std::ostream &OS) {
      << ", RegisterClasses, RegisterClasses+" << RegisterClasses.size() <<",\n "
      << "                 CallFrameSetupOpcode, CallFrameDestroyOpcode) {}\n\n";
 
-  // Emit the getCalleeSaveRegs method.
-  OS << "const unsigned* " << ClassName << "::getCalleeSaveRegs() const {\n"
-     << "  static const unsigned CalleeSaveRegs[] = {\n    ";
-
-  const std::vector<Record*> &CSR = Target.getCalleeSavedRegisters();
-  for (unsigned i = 0, e = CSR.size(); i != e; ++i)
-    OS << getQualifiedName(CSR[i]) << ", ";
-  OS << " 0\n  };\n  return CalleeSaveRegs;\n}\n\n";
-  
-  // Emit information about the callee saved register classes.
-  OS << "const TargetRegisterClass* const*\n" << ClassName
-     << "::getCalleeSaveRegClasses() const {\n"
-     << "  static const TargetRegisterClass * const "
-     << "CalleeSaveRegClasses[] = {\n    ";
-  
-  for (unsigned i = 0, e = CSR.size(); i != e; ++i) {
-    Record *R = CSR[i];
-    std::multimap<Record*, const CodeGenRegisterClass*>::iterator I, E;
-    tie(I, E) = RegClassesBelongedTo.equal_range(R);
-    if (I == E)
-      throw "Callee saved register '" + R->getName() +
-            "' must belong to a register class for spilling.\n";
-    const CodeGenRegisterClass *RC = (I++)->second;
-    for (; I != E; ++I)
-      if (RC->SpillSize < I->second->SpillSize)
-        RC = I->second;
-    OS << "&" << getQualifiedName(RC->TheDef) << "RegClass, ";
-  }
-  OS << " 0\n  };\n  return CalleeSaveRegClasses;\n}\n\n";
   // Emit information about the dwarf register numbers.
   OS << "int " << ClassName << "::getDwarfRegNum(unsigned RegNum) const {\n";
   OS << "  static const int DwarfRegNums[] = { -1, // NoRegister";