mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-11 09:29:20 +00:00
TableGen'd RegPressure: Added getPressureSetName.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155234 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
f4594a3302
commit
7c0903a924
@ -151,6 +151,17 @@ EmitRegUnitPressure(raw_ostream &OS, const CodeGenRegBank &RegBank,
|
|||||||
<< "unsigned " << ClassName << "::getNumRegPressureSets() const {\n"
|
<< "unsigned " << ClassName << "::getNumRegPressureSets() const {\n"
|
||||||
<< " return " << NumSets << ";\n}\n\n";
|
<< " return " << NumSets << ";\n}\n\n";
|
||||||
|
|
||||||
|
OS << "// Get the name of this register unit pressure set.\n"
|
||||||
|
<< "const char *" << ClassName << "::\n"
|
||||||
|
<< "getRegPressureSetName(unsigned Idx) const {\n"
|
||||||
|
<< " static const char *PressureNameTable[] = {\n";
|
||||||
|
for (unsigned i = 0; i < NumSets; ++i ) {
|
||||||
|
OS << " \"" << RegBank.getRegPressureSet(i).Name << "\",\n";
|
||||||
|
}
|
||||||
|
OS << " 0 };\n"
|
||||||
|
<< " return PressureNameTable[Idx];\n"
|
||||||
|
<< "}\n\n";
|
||||||
|
|
||||||
OS << "// Get the register unit pressure limit for this dimension.\n"
|
OS << "// Get the register unit pressure limit for this dimension.\n"
|
||||||
<< "// This limit must be adjusted dynamically for reserved registers.\n"
|
<< "// This limit must be adjusted dynamically for reserved registers.\n"
|
||||||
<< "unsigned " << ClassName << "::\n"
|
<< "unsigned " << ClassName << "::\n"
|
||||||
@ -159,7 +170,7 @@ EmitRegUnitPressure(raw_ostream &OS, const CodeGenRegBank &RegBank,
|
|||||||
for (unsigned i = 0; i < NumSets; ++i ) {
|
for (unsigned i = 0; i < NumSets; ++i ) {
|
||||||
const RegUnitSet &RegUnits = RegBank.getRegPressureSet(i);
|
const RegUnitSet &RegUnits = RegBank.getRegPressureSet(i);
|
||||||
OS << " " << RegBank.getRegUnitSetWeight(RegUnits.Units)
|
OS << " " << RegBank.getRegUnitSetWeight(RegUnits.Units)
|
||||||
<< ", \t// " << i << ": " << RegBank.getRegPressureSet(i).Name << "\n";
|
<< ", \t// " << i << ": " << RegUnits.Name << "\n";
|
||||||
}
|
}
|
||||||
OS << " 0 };\n"
|
OS << " 0 };\n"
|
||||||
<< " return PressureLimitTable[Idx];\n"
|
<< " return PressureLimitTable[Idx];\n"
|
||||||
@ -671,6 +682,7 @@ RegisterInfoEmitter::runTargetHeader(raw_ostream &OS, CodeGenTarget &Target,
|
|||||||
<< " const RegClassWeight &getRegClassWeight("
|
<< " const RegClassWeight &getRegClassWeight("
|
||||||
<< "const TargetRegisterClass *RC) const;\n"
|
<< "const TargetRegisterClass *RC) const;\n"
|
||||||
<< " unsigned getNumRegPressureSets() const;\n"
|
<< " unsigned getNumRegPressureSets() const;\n"
|
||||||
|
<< " const char *getRegPressureSetName(unsigned Idx) const;\n"
|
||||||
<< " unsigned getRegPressureSetLimit(unsigned Idx) const;\n"
|
<< " unsigned getRegPressureSetLimit(unsigned Idx) const;\n"
|
||||||
<< " const int *getRegClassPressureSets("
|
<< " const int *getRegClassPressureSets("
|
||||||
<< "const TargetRegisterClass *RC) const;\n"
|
<< "const TargetRegisterClass *RC) const;\n"
|
||||||
|
Loading…
Reference in New Issue
Block a user