@@ -226,22 +226,22 @@ std::string DagRecTy::getAsString() const {
226226}
227227
228228static void ProfileRecordRecTy (FoldingSetNodeID &ID,
229- ArrayRef<Record *> Classes) {
229+ ArrayRef<const Record *> Classes) {
230230 ID.AddInteger (Classes.size ());
231- for (Record *R : Classes)
231+ for (const Record *R : Classes)
232232 ID.AddPointer (R);
233233}
234234
235235RecordRecTy *RecordRecTy::get (RecordKeeper &RK,
236- ArrayRef<Record *> UnsortedClasses) {
236+ ArrayRef<const Record *> UnsortedClasses) {
237237 detail::RecordKeeperImpl &RKImpl = RK.getImpl ();
238238 if (UnsortedClasses.empty ())
239239 return &RKImpl.AnyRecord ;
240240
241241 FoldingSet<RecordRecTy> &ThePool = RKImpl.RecordTypePool ;
242242
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) {
245245 return LHS->getNameInitAsString () < RHS->getNameInitAsString ();
246246 });
247247
@@ -263,16 +263,16 @@ RecordRecTy *RecordRecTy::get(RecordKeeper &RK,
263263#endif
264264
265265 void *Mem = RKImpl.Allocator .Allocate (
266- totalSizeToAlloc<Record *>(Classes.size ()), alignof (RecordRecTy));
266+ totalSizeToAlloc<const Record *>(Classes.size ()), alignof (RecordRecTy));
267267 RecordRecTy *Ty = new (Mem) RecordRecTy (RK, Classes.size ());
268268 std::uninitialized_copy (Classes.begin (), Classes.end (),
269- Ty->getTrailingObjects <Record *>());
269+ Ty->getTrailingObjects <const Record *>());
270270 ThePool.InsertNode (Ty, IP);
271271 return Ty;
272272}
273- RecordRecTy *RecordRecTy::get (Record *Class) {
273+ RecordRecTy *RecordRecTy::get (const Record *Class) {
274274 assert (Class && " unexpected null class" );
275- return get (Class->getRecords (), Class);
275+ return get (Class->getRecords (), { Class} );
276276}
277277
278278void RecordRecTy::Profile (FoldingSetNodeID &ID) const {
@@ -285,7 +285,7 @@ std::string RecordRecTy::getAsString() const {
285285
286286 std::string Str = " {" ;
287287 bool First = true ;
288- for (Record *R : getClasses ()) {
288+ for (const Record *R : getClasses ()) {
289289 if (!First)
290290 Str += " , " ;
291291 First = false ;
@@ -295,11 +295,10 @@ std::string RecordRecTy::getAsString() const {
295295 return Str;
296296}
297297
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+ });
303302}
304303
305304bool RecordRecTy::typeIsConvertibleTo (const RecTy *RHS) const {
@@ -310,21 +309,21 @@ bool RecordRecTy::typeIsConvertibleTo(const RecTy *RHS) const {
310309 if (!RTy)
311310 return false ;
312311
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+ });
316315}
317316
318317bool RecordRecTy::typeIsA (const RecTy *RHS) const {
319318 return typeIsConvertibleTo (RHS);
320319}
321320
322321static 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 ());
325324
326325 while (!Stack.empty ()) {
327- Record *R = Stack.pop_back_val ();
326+ const Record *R = Stack.pop_back_val ();
328327
329328 if (T2->isSubClassOf (R)) {
330329 CommonSuperClasses.push_back (R);
@@ -2162,8 +2161,8 @@ std::string ExistsOpInit::getAsString() const {
21622161
21632162RecTy *TypedInit::getFieldType (StringInit *FieldName) const {
21642163 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))
21672166 return Field->getType ();
21682167 }
21692168 }
@@ -2831,7 +2830,7 @@ void Record::checkName() {
28312830}
28322831
28332832RecordRecTy *Record::getType () const {
2834- SmallVector<Record *, 4 > DirectSCs;
2833+ SmallVector<const Record *, 4 > DirectSCs;
28352834 getDirectSuperClasses (DirectSCs);
28362835 return RecordRecTy::get (TrackedRecords, DirectSCs);
28372836}
@@ -2882,7 +2881,8 @@ bool Record::hasDirectSuperClass(const Record *Superclass) const {
28822881 return false ;
28832882}
28842883
2885- void Record::getDirectSuperClasses (SmallVectorImpl<Record *> &Classes) const {
2884+ void Record::getDirectSuperClasses (
2885+ SmallVectorImpl<const Record *> &Classes) const {
28862886 ArrayRef<std::pair<Record *, SMRange>> SCs = getSuperClasses ();
28872887
28882888 while (!SCs.empty ()) {
0 commit comments