Skip to content

Commit 9ddb1cd

Browse files
authored
[LLVM][TableGen] Change DFAPacketizerEmitter to use const RecordKeeper (#109044)
Change DFAPacketizerEmitter to use const RecordKeeper. This is a part of effort to have better const correctness in TableGen backends: https://discourse.llvm.org/t/psa-planned-changes-to-tablegen-getallderiveddefinitions-api-potential-downstream-breakages/81089
1 parent 9284e18 commit 9ddb1cd

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

llvm/utils/TableGen/DFAPacketizerEmitter.cpp

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -61,26 +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

8181
ResourceVector getResourcesForItinerary(const Record *Itinerary);
8282
void createScheduleClasses(unsigned ItineraryIdx,
83-
const ConstRecVec &Itineraries);
83+
ArrayRef<const Record *> Itineraries);
8484

8585
// Emit code for a subset of itineraries.
8686
void emitForItineraries(raw_ostream &OS,
@@ -91,7 +91,7 @@ class DFAPacketizerEmitter {
9191
};
9292
} // end anonymous namespace
9393

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

9797
int DFAPacketizerEmitter::collectAllFuncUnits(
@@ -108,7 +108,7 @@ int DFAPacketizerEmitter::collectAllFuncUnits(
108108
int totalFUs = 0;
109109
// Parse functional units for all the itineraries.
110110
for (const Record *Proc : ProcItinList) {
111-
std::vector<Record *> FUs = Proc->getValueAsListOfDefs("FU");
111+
std::vector<const Record *> FUs = Proc->getValueAsListOfConstDefs("FU");
112112

113113
LLVM_DEBUG(dbgs() << " FU:"
114114
<< " (" << FUs.size() << " FUs) " << Proc->getName());
@@ -130,16 +130,16 @@ int DFAPacketizerEmitter::collectAllFuncUnits(
130130
}
131131

132132
int DFAPacketizerEmitter::collectAllComboFuncs(
133-
ArrayRef<Record *> ComboFuncList) {
133+
ArrayRef<const Record *> ComboFuncList) {
134134
LLVM_DEBUG(dbgs() << "-------------------------------------------------------"
135135
"----------------------\n");
136136
LLVM_DEBUG(dbgs() << "collectAllComboFuncs");
137137
LLVM_DEBUG(dbgs() << " (" << ComboFuncList.size() << " sets)\n");
138138

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

144144
LLVM_DEBUG(dbgs() << " CFD:" << i << " (" << FUs.size() << " combo FUs) "
145145
<< Func->getName() << "\n");
@@ -148,16 +148,16 @@ int DFAPacketizerEmitter::collectAllComboFuncs(
148148
for (unsigned j = 0, N = FUs.size(); j < N; ++j) {
149149
assert((j < DFA_MAX_RESOURCES) &&
150150
"Exceeded maximum number of DFA resources");
151-
Record *FuncData = FUs[j];
152-
Record *ComboFunc = FuncData->getValueAsDef("TheComboFunc");
153-
const std::vector<Record *> &FuncList =
154-
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");
155155
const std::string &ComboFuncName = std::string(ComboFunc->getName());
156156
uint64_t ComboBit = FUNameToBitsMap[ComboFuncName];
157157
uint64_t ComboResources = ComboBit;
158158
LLVM_DEBUG(dbgs() << " combo: " << ComboFuncName << ":0x"
159159
<< Twine::utohexstr(ComboResources) << "\n");
160-
for (auto *K : FuncList) {
160+
for (const Record *K : FuncList) {
161161
std::string FuncName = std::string(K->getName());
162162
uint64_t FuncResources = FUNameToBitsMap[FuncName];
163163
LLVM_DEBUG(dbgs() << " " << FuncName << ":0x"
@@ -190,7 +190,7 @@ DFAPacketizerEmitter::getResourcesForItinerary(const Record *Itinerary) {
190190
}
191191

192192
void DFAPacketizerEmitter::createScheduleClasses(
193-
unsigned ItineraryIdx, const ConstRecVec &Itineraries) {
193+
unsigned ItineraryIdx, ArrayRef<const Record *> Itineraries) {
194194
unsigned Idx = 0;
195195
for (const Record *Itinerary : Itineraries) {
196196
if (!Itinerary) {

0 commit comments

Comments
 (0)