Skip to content

Commit 56015da

Browse files
authored
[LLVM][TableGen] Change RegisterBankEmitter to use const RecordKeeper (#109195)
Change RegisterBankEmitter 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 cdf447b commit 56015da

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

llvm/utils/TableGen/RegisterBankEmitter.cpp

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -107,18 +107,18 @@ class RegisterBank {
107107

108108
class RegisterBankEmitter {
109109
private:
110-
CodeGenTarget Target;
111-
RecordKeeper &Records;
110+
const CodeGenTarget Target;
111+
const RecordKeeper &Records;
112112

113113
void emitHeader(raw_ostream &OS, const StringRef TargetName,
114-
const std::vector<RegisterBank> &Banks);
114+
ArrayRef<RegisterBank> Banks);
115115
void emitBaseClassDefinition(raw_ostream &OS, const StringRef TargetName,
116-
const std::vector<RegisterBank> &Banks);
116+
ArrayRef<RegisterBank> Banks);
117117
void emitBaseClassImplementation(raw_ostream &OS, const StringRef TargetName,
118-
std::vector<RegisterBank> &Banks);
118+
ArrayRef<RegisterBank> Banks);
119119

120120
public:
121-
RegisterBankEmitter(RecordKeeper &R) : Target(R), Records(R) {}
121+
RegisterBankEmitter(const RecordKeeper &R) : Target(R), Records(R) {}
122122

123123
void run(raw_ostream &OS);
124124
};
@@ -129,7 +129,7 @@ class RegisterBankEmitter {
129129
/// variables.
130130
void RegisterBankEmitter::emitHeader(raw_ostream &OS,
131131
const StringRef TargetName,
132-
const std::vector<RegisterBank> &Banks) {
132+
ArrayRef<RegisterBank> Banks) {
133133
// <Target>RegisterBankInfo.h
134134
OS << "namespace llvm {\n"
135135
<< "namespace " << TargetName << " {\n"
@@ -147,8 +147,7 @@ void RegisterBankEmitter::emitHeader(raw_ostream &OS,
147147

148148
/// Emit declarations of the <Target>GenRegisterBankInfo class.
149149
void RegisterBankEmitter::emitBaseClassDefinition(
150-
raw_ostream &OS, const StringRef TargetName,
151-
const std::vector<RegisterBank> &Banks) {
150+
raw_ostream &OS, const StringRef TargetName, ArrayRef<RegisterBank> Banks) {
152151
OS << "private:\n"
153152
<< " static const RegisterBank *RegBanks[];\n"
154153
<< " static const unsigned Sizes[];\n\n"
@@ -218,7 +217,7 @@ static void visitRegisterBankClasses(
218217
}
219218

220219
void RegisterBankEmitter::emitBaseClassImplementation(
221-
raw_ostream &OS, StringRef TargetName, std::vector<RegisterBank> &Banks) {
220+
raw_ostream &OS, StringRef TargetName, ArrayRef<RegisterBank> Banks) {
222221
const CodeGenRegBank &RegisterClassHierarchy = Target.getRegBank();
223222
const CodeGenHwModes &CGH = Target.getHwModes();
224223

0 commit comments

Comments
 (0)