diff options
| -rw-r--r-- | llvm/utils/TableGen/CodeGenRegisters.cpp | 9 | ||||
| -rw-r--r-- | llvm/utils/TableGen/CodeGenRegisters.h | 2 | 
2 files changed, 8 insertions, 3 deletions
diff --git a/llvm/utils/TableGen/CodeGenRegisters.cpp b/llvm/utils/TableGen/CodeGenRegisters.cpp index 813a71ab3bd..2b064aa3073 100644 --- a/llvm/utils/TableGen/CodeGenRegisters.cpp +++ b/llvm/utils/TableGen/CodeGenRegisters.cpp @@ -764,15 +764,20 @@ CodeGenRegisterClass::CodeGenRegisterClass(CodeGenRegBank &RegBank, Record *R)  // Create an inferred register class that was missing from the .td files.  // Most properties will be inherited from the closest super-class after the  // class structure has been computed. -CodeGenRegisterClass::CodeGenRegisterClass(StringRef Name, Key Props) +CodeGenRegisterClass::CodeGenRegisterClass(CodeGenRegBank &RegBank, +                                           StringRef Name, Key Props)    : Members(*Props.Members),      TheDef(0),      Name(Name), +    TopoSigs(RegBank.getNumTopoSigs()),      EnumValue(-1),      SpillSize(Props.SpillSize),      SpillAlignment(Props.SpillAlignment),      CopyCost(0),      Allocatable(true) { +  for (CodeGenRegister::Set::iterator I = Members.begin(), E = Members.end(); +       I != E; ++I) +    TopoSigs.set((*I)->getTopoSig());  }  // Compute inherited propertied for a synthesized register class. @@ -1080,7 +1085,7 @@ CodeGenRegBank::getOrCreateSubClass(const CodeGenRegisterClass *RC,      return FoundI->second;    // Sub-class doesn't exist, create a new one. -  CodeGenRegisterClass *NewRC = new CodeGenRegisterClass(Name, K); +  CodeGenRegisterClass *NewRC = new CodeGenRegisterClass(*this, Name, K);    addToMaps(NewRC);    return NewRC;  } diff --git a/llvm/utils/TableGen/CodeGenRegisters.h b/llvm/utils/TableGen/CodeGenRegisters.h index d00b999aff7..30461523ec2 100644 --- a/llvm/utils/TableGen/CodeGenRegisters.h +++ b/llvm/utils/TableGen/CodeGenRegisters.h @@ -368,7 +368,7 @@ namespace llvm {      };      // Create a non-user defined register class. -    CodeGenRegisterClass(StringRef Name, Key Props); +    CodeGenRegisterClass(CodeGenRegBank&, StringRef Name, Key Props);      // Called by CodeGenRegBank::CodeGenRegBank().      static void computeSubClasses(CodeGenRegBank&);  | 

