@@ -227,26 +227,12 @@ MatchTableRecord MatchTable::NamedValue(unsigned NumBytes,
227
227
MatchTableRecord::MTRF_CommaFollows);
228
228
}
229
229
230
- MatchTableRecord MatchTable::NamedValue (unsigned NumBytes, StringRef NamedValue,
231
- int64_t RawValue) {
232
- return MatchTableRecord (std::nullopt, NamedValue, NumBytes,
233
- MatchTableRecord::MTRF_CommaFollows, RawValue);
234
- }
235
-
236
230
MatchTableRecord MatchTable::NamedValue (unsigned NumBytes, StringRef Namespace,
237
231
StringRef NamedValue) {
238
232
return MatchTableRecord (std::nullopt, (Namespace + " ::" + NamedValue).str (),
239
233
NumBytes, MatchTableRecord::MTRF_CommaFollows);
240
234
}
241
235
242
- MatchTableRecord MatchTable::NamedValue (unsigned NumBytes, StringRef Namespace,
243
- StringRef NamedValue,
244
- int64_t RawValue) {
245
- return MatchTableRecord (std::nullopt, (Namespace + " ::" + NamedValue).str (),
246
- NumBytes, MatchTableRecord::MTRF_CommaFollows,
247
- RawValue);
248
- }
249
-
250
236
MatchTableRecord MatchTable::IntValue (unsigned NumBytes, int64_t IntValue) {
251
237
assert (isUIntN (NumBytes * 8 , IntValue) || isIntN (NumBytes * 8 , IntValue));
252
238
auto Str = llvm::to_string (IntValue);
@@ -651,8 +637,8 @@ void SwitchMatcher::emit(MatchTable &Table) {
651
637
[&Table]() { return Table.allocateLabelID (); });
652
638
const unsigned Default = Table.allocateLabelID ();
653
639
654
- const int64_t LowerBound = Values.begin ()->getRawValue () ;
655
- const int64_t UpperBound = Values.rbegin ()->getRawValue () + 1 ;
640
+ const int64_t LowerBound = Values.begin ()->RawValue ;
641
+ const int64_t UpperBound = Values.rbegin ()->RawValue + 1 ;
656
642
657
643
emitPredicateSpecificOpcodes (*Condition, Table);
658
644
@@ -664,10 +650,11 @@ void SwitchMatcher::emit(MatchTable &Table) {
664
650
auto VI = Values.begin ();
665
651
for (unsigned I = 0 , E = Values.size (); I < E; ++I) {
666
652
auto V = *VI++;
667
- while (J++ < V.getRawValue () )
653
+ while (J++ < V.RawValue )
668
654
Table << MatchTable::IntValue (4 , 0 );
669
- V.turnIntoComment ();
670
- Table << MatchTable::LineBreak << V << MatchTable::JumpTarget (LabelIDs[I]);
655
+ V.Record .turnIntoComment ();
656
+ Table << MatchTable::LineBreak << V.Record
657
+ << MatchTable::JumpTarget (LabelIDs[I]);
671
658
}
672
659
Table << MatchTable::LineBreak;
673
660
@@ -1145,11 +1132,11 @@ void SameOperandMatcher::emitPredicateOpcodes(MatchTable &Table,
1145
1132
1146
1133
std::map<LLTCodeGen, unsigned > LLTOperandMatcher::TypeIDValues;
1147
1134
1148
- MatchTableRecord LLTOperandMatcher::getValue () const {
1135
+ RecordAndValue LLTOperandMatcher::getValue () const {
1149
1136
const auto VI = TypeIDValues.find (Ty);
1150
1137
if (VI == TypeIDValues.end ())
1151
1138
return MatchTable::NamedValue (1 , getTy ().getCxxEnumValue ());
1152
- return MatchTable::NamedValue (1 , getTy ().getCxxEnumValue (), VI->second ) ;
1139
+ return { MatchTable::NamedValue (1 , getTy ().getCxxEnumValue ()) , VI->second } ;
1153
1140
}
1154
1141
1155
1142
bool LLTOperandMatcher::hasValue () const {
@@ -1167,7 +1154,8 @@ void LLTOperandMatcher::emitPredicateOpcodes(MatchTable &Table,
1167
1154
<< MatchTable::ULEB128Value (InsnVarID);
1168
1155
}
1169
1156
Table << MatchTable::Comment (" Op" ) << MatchTable::ULEB128Value (OpIdx)
1170
- << MatchTable::Comment (" Type" ) << getValue () << MatchTable::LineBreak;
1157
+ << MatchTable::Comment (" Type" ) << getValue ().Record
1158
+ << MatchTable::LineBreak;
1171
1159
}
1172
1160
1173
1161
// ===- PointerToAnyOperandMatcher -----------------------------------------===//
@@ -1411,12 +1399,12 @@ Error OperandMatcher::addTypeCheckPredicate(const TypeSetByHwMode &VTy,
1411
1399
DenseMap<const CodeGenInstruction *, unsigned >
1412
1400
InstructionOpcodeMatcher::OpcodeValues;
1413
1401
1414
- MatchTableRecord
1402
+ RecordAndValue
1415
1403
InstructionOpcodeMatcher::getInstValue (const CodeGenInstruction *I) const {
1416
1404
const auto VI = OpcodeValues.find (I);
1417
1405
if (VI != OpcodeValues.end ())
1418
- return MatchTable::NamedValue (2 , I->Namespace , I->TheDef ->getName (),
1419
- VI->second ) ;
1406
+ return { MatchTable::NamedValue (2 , I->Namespace , I->TheDef ->getName () ),
1407
+ VI->second } ;
1420
1408
return MatchTable::NamedValue (2 , I->Namespace , I->TheDef ->getName ());
1421
1409
}
1422
1410
@@ -1428,14 +1416,14 @@ void InstructionOpcodeMatcher::initOpcodeValuesMap(
1428
1416
OpcodeValues[I] = Target.getInstrIntValue (I->TheDef );
1429
1417
}
1430
1418
1431
- MatchTableRecord InstructionOpcodeMatcher::getValue () const {
1419
+ RecordAndValue InstructionOpcodeMatcher::getValue () const {
1432
1420
assert (Insts.size () == 1 );
1433
1421
1434
1422
const CodeGenInstruction *I = Insts[0 ];
1435
1423
const auto VI = OpcodeValues.find (I);
1436
1424
if (VI != OpcodeValues.end ())
1437
- return MatchTable::NamedValue (2 , I->Namespace , I->TheDef ->getName (),
1438
- VI->second ) ;
1425
+ return { MatchTable::NamedValue (2 , I->Namespace , I->TheDef ->getName () ),
1426
+ VI->second } ;
1439
1427
return MatchTable::NamedValue (2 , I->Namespace , I->TheDef ->getName ());
1440
1428
}
1441
1429
@@ -1447,7 +1435,7 @@ void InstructionOpcodeMatcher::emitPredicateOpcodes(MatchTable &Table,
1447
1435
<< MatchTable::ULEB128Value (InsnVarID);
1448
1436
1449
1437
for (const CodeGenInstruction *I : Insts)
1450
- Table << getInstValue (I);
1438
+ Table << getInstValue (I). Record ;
1451
1439
Table << MatchTable::LineBreak;
1452
1440
}
1453
1441
0 commit comments