@@ -226,22 +226,22 @@ std::string DagRecTy::getAsString() const {
226
226
}
227
227
228
228
static void ProfileRecordRecTy (FoldingSetNodeID &ID,
229
- ArrayRef<Record *> Classes) {
229
+ ArrayRef<const Record *> Classes) {
230
230
ID.AddInteger (Classes.size ());
231
- for (Record *R : Classes)
231
+ for (const Record *R : Classes)
232
232
ID.AddPointer (R);
233
233
}
234
234
235
235
RecordRecTy *RecordRecTy::get (RecordKeeper &RK,
236
- ArrayRef<Record *> UnsortedClasses) {
236
+ ArrayRef<const Record *> UnsortedClasses) {
237
237
detail::RecordKeeperImpl &RKImpl = RK.getImpl ();
238
238
if (UnsortedClasses.empty ())
239
239
return &RKImpl.AnyRecord ;
240
240
241
241
FoldingSet<RecordRecTy> &ThePool = RKImpl.RecordTypePool ;
242
242
243
- SmallVector<Record *, 4 > Classes (UnsortedClasses);
244
- llvm::sort (Classes, [](Record *LHS, Record *RHS) {
243
+ SmallVector<const Record *, 4 > Classes (UnsortedClasses);
244
+ llvm::sort (Classes, [](const Record *LHS, const Record *RHS) {
245
245
return LHS->getNameInitAsString () < RHS->getNameInitAsString ();
246
246
});
247
247
@@ -263,16 +263,16 @@ RecordRecTy *RecordRecTy::get(RecordKeeper &RK,
263
263
#endif
264
264
265
265
void *Mem = RKImpl.Allocator .Allocate (
266
- totalSizeToAlloc<Record *>(Classes.size ()), alignof (RecordRecTy));
266
+ totalSizeToAlloc<const Record *>(Classes.size ()), alignof (RecordRecTy));
267
267
RecordRecTy *Ty = new (Mem) RecordRecTy (RK, Classes.size ());
268
268
std::uninitialized_copy (Classes.begin (), Classes.end (),
269
- Ty->getTrailingObjects <Record *>());
269
+ Ty->getTrailingObjects <const Record *>());
270
270
ThePool.InsertNode (Ty, IP);
271
271
return Ty;
272
272
}
273
- RecordRecTy *RecordRecTy::get (Record *Class) {
273
+ RecordRecTy *RecordRecTy::get (const Record *Class) {
274
274
assert (Class && " unexpected null class" );
275
- return get (Class->getRecords (), Class);
275
+ return get (Class->getRecords (), { Class} );
276
276
}
277
277
278
278
void RecordRecTy::Profile (FoldingSetNodeID &ID) const {
@@ -285,7 +285,7 @@ std::string RecordRecTy::getAsString() const {
285
285
286
286
std::string Str = " {" ;
287
287
bool First = true ;
288
- for (Record *R : getClasses ()) {
288
+ for (const Record *R : getClasses ()) {
289
289
if (!First)
290
290
Str += " , " ;
291
291
First = false ;
@@ -295,11 +295,10 @@ std::string RecordRecTy::getAsString() const {
295
295
return Str;
296
296
}
297
297
298
- bool RecordRecTy::isSubClassOf (Record *Class) const {
299
- return llvm::any_of (getClasses (), [Class](Record *MySuperClass) {
300
- return MySuperClass == Class ||
301
- MySuperClass->isSubClassOf (Class);
302
- });
298
+ bool RecordRecTy::isSubClassOf (const Record *Class) const {
299
+ return llvm::any_of (getClasses (), [Class](const Record *MySuperClass) {
300
+ return MySuperClass == Class || MySuperClass->isSubClassOf (Class);
301
+ });
303
302
}
304
303
305
304
bool RecordRecTy::typeIsConvertibleTo (const RecTy *RHS) const {
@@ -310,21 +309,21 @@ bool RecordRecTy::typeIsConvertibleTo(const RecTy *RHS) const {
310
309
if (!RTy)
311
310
return false ;
312
311
313
- return llvm::all_of (RTy->getClasses (), [this ](Record *TargetClass) {
314
- return isSubClassOf (TargetClass);
315
- });
312
+ return llvm::all_of (RTy->getClasses (), [this ](const Record *TargetClass) {
313
+ return isSubClassOf (TargetClass);
314
+ });
316
315
}
317
316
318
317
bool RecordRecTy::typeIsA (const RecTy *RHS) const {
319
318
return typeIsConvertibleTo (RHS);
320
319
}
321
320
322
321
static RecordRecTy *resolveRecordTypes (RecordRecTy *T1, RecordRecTy *T2) {
323
- SmallVector<Record *, 4 > CommonSuperClasses;
324
- SmallVector<Record *, 4 > Stack (T1->getClasses ());
322
+ SmallVector<const Record *, 4 > CommonSuperClasses;
323
+ SmallVector<const Record *, 4 > Stack (T1->getClasses ());
325
324
326
325
while (!Stack.empty ()) {
327
- Record *R = Stack.pop_back_val ();
326
+ const Record *R = Stack.pop_back_val ();
328
327
329
328
if (T2->isSubClassOf (R)) {
330
329
CommonSuperClasses.push_back (R);
@@ -2162,8 +2161,8 @@ std::string ExistsOpInit::getAsString() const {
2162
2161
2163
2162
RecTy *TypedInit::getFieldType (StringInit *FieldName) const {
2164
2163
if (RecordRecTy *RecordType = dyn_cast<RecordRecTy>(getType ())) {
2165
- for (Record *Rec : RecordType->getClasses ()) {
2166
- if (RecordVal *Field = Rec->getValue (FieldName))
2164
+ for (const Record *Rec : RecordType->getClasses ()) {
2165
+ if (const RecordVal *Field = Rec->getValue (FieldName))
2167
2166
return Field->getType ();
2168
2167
}
2169
2168
}
@@ -2831,7 +2830,7 @@ void Record::checkName() {
2831
2830
}
2832
2831
2833
2832
RecordRecTy *Record::getType () const {
2834
- SmallVector<Record *, 4 > DirectSCs;
2833
+ SmallVector<const Record *, 4 > DirectSCs;
2835
2834
getDirectSuperClasses (DirectSCs);
2836
2835
return RecordRecTy::get (TrackedRecords, DirectSCs);
2837
2836
}
@@ -2882,7 +2881,8 @@ bool Record::hasDirectSuperClass(const Record *Superclass) const {
2882
2881
return false ;
2883
2882
}
2884
2883
2885
- void Record::getDirectSuperClasses (SmallVectorImpl<Record *> &Classes) const {
2884
+ void Record::getDirectSuperClasses (
2885
+ SmallVectorImpl<const Record *> &Classes) const {
2886
2886
ArrayRef<std::pair<Record *, SMRange>> SCs = getSuperClasses ();
2887
2887
2888
2888
while (!SCs.empty ()) {
0 commit comments