19
19
#include " llvm/ADT/DenseSet.h"
20
20
#include " llvm/ADT/FoldingSet.h"
21
21
#include " llvm/ADT/PointerIntPair.h"
22
+ #include " llvm/ADT/STLExtras.h"
22
23
#include " llvm/ADT/SmallVector.h"
23
24
#include " llvm/ADT/StringExtras.h"
24
25
#include " llvm/ADT/StringRef.h"
@@ -244,7 +245,7 @@ class RecordRecTy final : public RecTy,
244
245
RecordRecTy &operator =(const RecordRecTy &) = delete ;
245
246
246
247
// Do not use sized deallocation due to trailing objects.
247
- void operator delete (void *p ) { ::operator delete (p ); }
248
+ void operator delete (void *Ptr ) { ::operator delete (Ptr ); }
248
249
249
250
static bool classof (const RecTy *RT) {
250
251
return RT->getRecTyKind () == RecordRecTyKind;
@@ -598,7 +599,7 @@ class BitsInit final : public TypedInit,
598
599
BitsInit &operator =(const BitsInit &) = delete ;
599
600
600
601
// Do not use sized deallocation due to trailing objects.
601
- void operator delete (void *p ) { ::operator delete (p ); }
602
+ void operator delete (void *Ptr ) { ::operator delete (Ptr ); }
602
603
603
604
static bool classof (const Init *I) {
604
605
return I->getKind () == IK_BitsInit;
@@ -615,18 +616,8 @@ class BitsInit final : public TypedInit,
615
616
convertInitializerBitRange (ArrayRef<unsigned > Bits) const override ;
616
617
std::optional<int64_t > convertInitializerToInt () const ;
617
618
618
- bool isComplete () const override {
619
- for (unsigned i = 0 ; i != getNumBits (); ++i)
620
- if (!getBit (i)->isComplete ()) return false ;
621
- return true ;
622
- }
623
-
624
- bool allInComplete () const {
625
- for (unsigned i = 0 ; i != getNumBits (); ++i)
626
- if (getBit (i)->isComplete ()) return false ;
627
- return true ;
628
- }
629
-
619
+ bool isComplete () const override ;
620
+ bool allInComplete () const ;
630
621
bool isConcrete () const override ;
631
622
std::string getAsString () const override ;
632
623
@@ -773,7 +764,7 @@ class ListInit final : public TypedInit,
773
764
ListInit &operator =(const ListInit &) = delete ;
774
765
775
766
// Do not use sized deallocation due to trailing objects.
776
- void operator delete (void *p ) { ::operator delete (p ); }
767
+ void operator delete (void *Ptr ) { ::operator delete (Ptr ); }
777
768
778
769
static bool classof (const Init *I) {
779
770
return I->getKind () == IK_ListInit;
@@ -786,13 +777,13 @@ class ListInit final : public TypedInit,
786
777
return ArrayRef (getTrailingObjects<const Init *>(), NumValues);
787
778
}
788
779
789
- const Init *getElement (unsigned Index ) const { return getValues ()[Index ]; }
780
+ const Init *getElement (unsigned Idx ) const { return getValues ()[Idx ]; }
790
781
791
782
const RecTy *getElementType () const {
792
783
return cast<ListRecTy>(getType ())->getElementType ();
793
784
}
794
785
795
- const Record *getElementAsRecord (unsigned i ) const ;
786
+ const Record *getElementAsRecord (unsigned Idx ) const ;
796
787
797
788
const Init *convertInitializerTo (const RecTy *Ty) const override ;
798
789
@@ -1060,6 +1051,8 @@ class CondOpInit final : public TypedInit,
1060
1051
return ArrayRef (getTrailingObjects<const Init *>() + NumConds, NumConds);
1061
1052
}
1062
1053
1054
+ auto getCondAndVals () const { return zip_equal (getConds (), getVals ()); }
1055
+
1063
1056
const Init *Fold (const Record *CurRec) const ;
1064
1057
1065
1058
const Init *resolveReferences (Resolver &R) const override ;
@@ -1349,7 +1342,7 @@ class VarDefInit final
1349
1342
VarDefInit &operator =(const VarDefInit &) = delete ;
1350
1343
1351
1344
// Do not use sized deallocation due to trailing objects.
1352
- void operator delete (void *p ) { ::operator delete (p ); }
1345
+ void operator delete (void *Ptr ) { ::operator delete (Ptr ); }
1353
1346
1354
1347
static bool classof (const Init *I) {
1355
1348
return I->getKind () == IK_VarDefInit;
@@ -1495,6 +1488,8 @@ class DagInit final
1495
1488
return ArrayRef (getTrailingObjects<const StringInit *>(), NumArgs);
1496
1489
}
1497
1490
1491
+ auto getArgAndNames () const { return zip_equal (getArgs (), getArgNames ()); }
1492
+
1498
1493
const Init *resolveReferences (Resolver &R) const override ;
1499
1494
1500
1495
bool isConcrete () const override ;
@@ -1798,9 +1793,9 @@ class Record {
1798
1793
}
1799
1794
1800
1795
void removeValue (const Init *Name) {
1801
- for (unsigned i = 0 , e = Values. size (); i != e; ++i )
1802
- if (Values[i] .getNameInit () == Name) {
1803
- Values.erase (Values.begin ()+i );
1796
+ for (auto [Idx, Value] : enumerate(Values) )
1797
+ if (Value .getNameInit () == Name) {
1798
+ Values.erase (Values.begin () + Idx );
1804
1799
return ;
1805
1800
}
1806
1801
llvm_unreachable (" Cannot remove an entry that does not exist!" );
@@ -2123,10 +2118,7 @@ struct LessRecordRegister {
2123
2118
2124
2119
size_t size () { return Parts.size (); }
2125
2120
2126
- std::pair<bool , StringRef> getPart (size_t i) {
2127
- assert (i < Parts.size () && " Invalid idx!" );
2128
- return Parts[i];
2129
- }
2121
+ std::pair<bool , StringRef> getPart (size_t Idx) { return Parts[Idx]; }
2130
2122
};
2131
2123
2132
2124
bool operator ()(const Record *Rec1, const Record *Rec2) const {
0 commit comments