@@ -18,17 +18,17 @@ namespace tblgen {
1818
1919class HandleRec {
2020public:
21- explicit HandleRec (Record *rec) : rec(rec) {}
21+ explicit HandleRec (const Record *rec) : rec(rec) {}
2222 StringRef getName () const { return rec->getValueAsString (" name" ); }
2323 StringRef getDesc () const { return rec->getValueAsString (" desc" ); }
2424
2525private:
26- Record *rec;
26+ const Record *rec;
2727};
2828
2929class MacroRec {
3030public:
31- explicit MacroRec (Record *rec) : rec(rec) {
31+ explicit MacroRec (const Record *rec) : rec(rec) {
3232 auto Name = rec->getValueAsString (" name" );
3333 auto OpenBrace = Name.find_first_of (" (" );
3434 nameWithoutArgs = Name.substr (0 , OpenBrace);
@@ -46,38 +46,38 @@ class MacroRec {
4646 }
4747
4848private:
49- Record *rec;
49+ const Record *rec;
5050 std::string nameWithoutArgs;
5151};
5252
5353class TypedefRec {
5454public:
55- explicit TypedefRec (Record *rec) : rec(rec) {}
55+ explicit TypedefRec (const Record *rec) : rec(rec) {}
5656 StringRef getName () const { return rec->getValueAsString (" name" ); }
5757 StringRef getDesc () const { return rec->getValueAsString (" desc" ); }
5858 StringRef getValue () const { return rec->getValueAsString (" value" ); }
5959
6060private:
61- Record *rec;
61+ const Record *rec;
6262};
6363
6464class EnumValueRec {
6565public:
66- explicit EnumValueRec (Record *rec) : rec(rec) {}
66+ explicit EnumValueRec (const Record *rec) : rec(rec) {}
6767 std::string getName () const { return rec->getValueAsString (" name" ).upper (); }
6868 StringRef getDesc () const { return rec->getValueAsString (" desc" ); }
6969 StringRef getTaggedType () const {
7070 return rec->getValueAsString (" tagged_type" );
7171 }
7272
7373private:
74- Record *rec;
74+ const Record *rec;
7575};
7676
7777class EnumRec {
7878public:
79- explicit EnumRec (Record *rec) : rec(rec) {
80- for (auto *Val : rec->getValueAsListOfDefs (" etors" )) {
79+ explicit EnumRec (const Record *rec) : rec(rec) {
80+ for (const auto *Val : rec->getValueAsListOfDefs (" etors" )) {
8181 vals.emplace_back (EnumValueRec{Val});
8282 }
8383 }
@@ -93,24 +93,24 @@ class EnumRec {
9393 bool isTyped () const { return rec->getValueAsBit (" is_typed" ); }
9494
9595private:
96- Record *rec;
96+ const Record *rec;
9797 std::vector<EnumValueRec> vals;
9898};
9999
100100class StructMemberRec {
101101public:
102- explicit StructMemberRec (Record *rec) : rec(rec) {}
102+ explicit StructMemberRec (const Record *rec) : rec(rec) {}
103103 StringRef getType () const { return rec->getValueAsString (" type" ); }
104104 StringRef getName () const { return rec->getValueAsString (" name" ); }
105105 StringRef getDesc () const { return rec->getValueAsString (" desc" ); }
106106
107107private:
108- Record *rec;
108+ const Record *rec;
109109};
110110
111111class StructRec {
112112public:
113- explicit StructRec (Record *rec) : rec(rec) {
113+ explicit StructRec (const Record *rec) : rec(rec) {
114114 for (auto *Member : rec->getValueAsListOfDefs (" all_members" )) {
115115 members.emplace_back (StructMemberRec (Member));
116116 }
@@ -123,13 +123,13 @@ class StructRec {
123123 const std::vector<StructMemberRec> &getMembers () const { return members; }
124124
125125private:
126- Record *rec;
126+ const Record *rec;
127127 std::vector<StructMemberRec> members;
128128};
129129
130130class ParamRec {
131131public:
132- explicit ParamRec (Record *rec) : rec(rec) {
132+ explicit ParamRec (const Record *rec) : rec(rec) {
133133 flags = rec->getValueAsBitsInit (" flags" );
134134 auto *Range = rec->getValueAsDef (" range" );
135135 auto RangeBegin = Range->getValueAsString (" begin" );
@@ -158,7 +158,7 @@ class ParamRec {
158158 bool isOut () const { return dyn_cast<BitInit>(flags->getBit (1 ))->getValue (); }
159159 bool isOpt () const { return dyn_cast<BitInit>(flags->getBit (2 ))->getValue (); }
160160
161- Record *getRec () const { return rec; }
161+ const Record *getRec () const { return rec; }
162162 std::optional<std::pair<StringRef, StringRef>> getRange () const {
163163 return range;
164164 }
@@ -171,27 +171,27 @@ class ParamRec {
171171 bool operator !=(const ParamRec &p) const { return rec != p.getRec (); }
172172
173173private:
174- Record *rec;
175- BitsInit *flags;
174+ const Record *rec;
175+ const BitsInit *flags;
176176 std::optional<std::pair<StringRef, StringRef>> range;
177177 std::optional<std::pair<StringRef, StringRef>> typeinfo;
178178};
179179
180180class ReturnRec {
181181public:
182- ReturnRec (Record *rec) : rec(rec) {}
182+ ReturnRec (const Record *rec) : rec(rec) {}
183183 StringRef getValue () const { return rec->getValueAsString (" value" ); }
184184 std::vector<StringRef> getConditions () const {
185185 return rec->getValueAsListOfStrings (" conditions" );
186186 }
187187
188188private:
189- Record *rec;
189+ const Record *rec;
190190};
191191
192192class FunctionRec {
193193public:
194- FunctionRec (Record *rec) : rec(rec) {
194+ FunctionRec (const Record *rec) : rec(rec) {
195195 for (auto &Ret : rec->getValueAsListOfDefs (" all_returns" ))
196196 rets.emplace_back (Ret);
197197 for (auto &Param : rec->getValueAsListOfDefs (" params" ))
@@ -219,7 +219,7 @@ class FunctionRec {
219219 std::vector<ReturnRec> rets;
220220 std::vector<ParamRec> params;
221221
222- Record *rec;
222+ const Record *rec;
223223};
224224
225225} // namespace tblgen
0 commit comments