Skip to content

Commit 27ea5e6

Browse files
committed
[LLVM][TableGen] Change DFAPacketizerEmitter to use const RecordKeeper
1 parent 6b78ea8 commit 27ea5e6

File tree

1 file changed

+22
-21
lines changed

1 file changed

+22
-21
lines changed

llvm/utils/TableGen/DFAPacketizerEmitter.cpp

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -61,25 +61,26 @@ struct ScheduleClass {
6161
class DFAPacketizerEmitter {
6262
private:
6363
std::string TargetName;
64-
RecordKeeper &Records;
64+
const RecordKeeper &Records;
6565

6666
UniqueVector<ResourceVector> UniqueResources;
6767
std::vector<ScheduleClass> ScheduleClasses;
6868
std::map<std::string, uint64_t> FUNameToBitsMap;
6969
std::map<unsigned, uint64_t> ComboBitToBitsMap;
7070

7171
public:
72-
DFAPacketizerEmitter(RecordKeeper &R);
72+
DFAPacketizerEmitter(const RecordKeeper &R);
7373

7474
// Construct a map of function unit names to bits.
7575
int collectAllFuncUnits(ArrayRef<const CodeGenProcModel *> ProcModels);
7676

7777
// Construct a map from a combo function unit bit to the bits of all included
7878
// functional units.
79-
int collectAllComboFuncs(ArrayRef<Record *> ComboFuncList);
79+
int collectAllComboFuncs(ArrayRef<const Record *> ComboFuncList);
8080

81-
ResourceVector getResourcesForItinerary(Record *Itinerary);
82-
void createScheduleClasses(unsigned ItineraryIdx, const RecVec &Itineraries);
81+
ResourceVector getResourcesForItinerary(const Record *Itinerary);
82+
void createScheduleClasses(unsigned ItineraryIdx,
83+
ArrayRef<const Record *> Itineraries);
8384

8485
// Emit code for a subset of itineraries.
8586
void emitForItineraries(raw_ostream &OS,
@@ -90,7 +91,7 @@ class DFAPacketizerEmitter {
9091
};
9192
} // end anonymous namespace
9293

93-
DFAPacketizerEmitter::DFAPacketizerEmitter(RecordKeeper &R)
94+
DFAPacketizerEmitter::DFAPacketizerEmitter(const RecordKeeper &R)
9495
: TargetName(std::string(CodeGenTarget(R).getName())), Records(R) {}
9596

9697
int DFAPacketizerEmitter::collectAllFuncUnits(
@@ -107,7 +108,7 @@ int DFAPacketizerEmitter::collectAllFuncUnits(
107108
int totalFUs = 0;
108109
// Parse functional units for all the itineraries.
109110
for (const Record *Proc : ProcItinList) {
110-
std::vector<Record *> FUs = Proc->getValueAsListOfDefs("FU");
111+
std::vector<const Record *> FUs = Proc->getValueAsListOfConstDefs("FU");
111112

112113
LLVM_DEBUG(dbgs() << " FU:"
113114
<< " (" << FUs.size() << " FUs) " << Proc->getName());
@@ -129,16 +130,16 @@ int DFAPacketizerEmitter::collectAllFuncUnits(
129130
}
130131

131132
int DFAPacketizerEmitter::collectAllComboFuncs(
132-
ArrayRef<Record *> ComboFuncList) {
133+
ArrayRef<const Record *> ComboFuncList) {
133134
LLVM_DEBUG(dbgs() << "-------------------------------------------------------"
134135
"----------------------\n");
135136
LLVM_DEBUG(dbgs() << "collectAllComboFuncs");
136137
LLVM_DEBUG(dbgs() << " (" << ComboFuncList.size() << " sets)\n");
137138

138139
int numCombos = 0;
139140
for (unsigned i = 0, N = ComboFuncList.size(); i < N; ++i) {
140-
Record *Func = ComboFuncList[i];
141-
std::vector<Record *> FUs = Func->getValueAsListOfDefs("CFD");
141+
const Record *Func = ComboFuncList[i];
142+
std::vector<const Record *> FUs = Func->getValueAsListOfConstDefs("CFD");
142143

143144
LLVM_DEBUG(dbgs() << " CFD:" << i << " (" << FUs.size() << " combo FUs) "
144145
<< Func->getName() << "\n");
@@ -147,16 +148,16 @@ int DFAPacketizerEmitter::collectAllComboFuncs(
147148
for (unsigned j = 0, N = FUs.size(); j < N; ++j) {
148149
assert((j < DFA_MAX_RESOURCES) &&
149150
"Exceeded maximum number of DFA resources");
150-
Record *FuncData = FUs[j];
151-
Record *ComboFunc = FuncData->getValueAsDef("TheComboFunc");
152-
const std::vector<Record *> &FuncList =
153-
FuncData->getValueAsListOfDefs("FuncList");
151+
const Record *FuncData = FUs[j];
152+
const Record *ComboFunc = FuncData->getValueAsDef("TheComboFunc");
153+
const std::vector<const Record *> FuncList =
154+
FuncData->getValueAsListOfConstDefs("FuncList");
154155
const std::string &ComboFuncName = std::string(ComboFunc->getName());
155156
uint64_t ComboBit = FUNameToBitsMap[ComboFuncName];
156157
uint64_t ComboResources = ComboBit;
157158
LLVM_DEBUG(dbgs() << " combo: " << ComboFuncName << ":0x"
158159
<< Twine::utohexstr(ComboResources) << "\n");
159-
for (auto *K : FuncList) {
160+
for (const Record *K : FuncList) {
160161
std::string FuncName = std::string(K->getName());
161162
uint64_t FuncResources = FUNameToBitsMap[FuncName];
162163
LLVM_DEBUG(dbgs() << " " << FuncName << ":0x"
@@ -174,12 +175,12 @@ int DFAPacketizerEmitter::collectAllComboFuncs(
174175
}
175176

176177
ResourceVector
177-
DFAPacketizerEmitter::getResourcesForItinerary(Record *Itinerary) {
178+
DFAPacketizerEmitter::getResourcesForItinerary(const Record *Itinerary) {
178179
ResourceVector Resources;
179180
assert(Itinerary);
180-
for (Record *StageDef : Itinerary->getValueAsListOfDefs("Stages")) {
181+
for (const Record *StageDef : Itinerary->getValueAsListOfDefs("Stages")) {
181182
uint64_t StageResources = 0;
182-
for (Record *Unit : StageDef->getValueAsListOfDefs("Units")) {
183+
for (const Record *Unit : StageDef->getValueAsListOfDefs("Units")) {
183184
StageResources |= FUNameToBitsMap[std::string(Unit->getName())];
184185
}
185186
if (StageResources != 0)
@@ -188,10 +189,10 @@ DFAPacketizerEmitter::getResourcesForItinerary(Record *Itinerary) {
188189
return Resources;
189190
}
190191

191-
void DFAPacketizerEmitter::createScheduleClasses(unsigned ItineraryIdx,
192-
const RecVec &Itineraries) {
192+
void DFAPacketizerEmitter::createScheduleClasses(
193+
unsigned ItineraryIdx, ArrayRef<const Record *> Itineraries) {
193194
unsigned Idx = 0;
194-
for (Record *Itinerary : Itineraries) {
195+
for (const Record *Itinerary : Itineraries) {
195196
if (!Itinerary) {
196197
ScheduleClasses.push_back({ItineraryIdx, Idx++, 0, ResourceVector{}});
197198
continue;

0 commit comments

Comments
 (0)