@@ -416,7 +416,7 @@ class GlobalISelEmitter final : public GlobalISelMatchTableExecutorEmitter {
416
416
Expected<action_iterator>
417
417
importExplicitUseRenderer (action_iterator InsertPt, RuleMatcher &Rule,
418
418
BuildMIAction &DstMIBuilder,
419
- const TreePatternNode &DstChild );
419
+ const TreePatternNode &Dst );
420
420
Error importDefaultOperandRenderers (action_iterator InsertPt, RuleMatcher &M,
421
421
BuildMIAction &DstMIBuilder,
422
422
const DAGDefaultOperand &DefaultOp) const ;
@@ -1198,23 +1198,22 @@ Error GlobalISelEmitter::importChildMatcher(
1198
1198
1199
1199
Expected<action_iterator> GlobalISelEmitter::importExplicitUseRenderer (
1200
1200
action_iterator InsertPt, RuleMatcher &Rule, BuildMIAction &DstMIBuilder,
1201
- const TreePatternNode &DstChild ) {
1201
+ const TreePatternNode &Dst ) {
1202
1202
1203
- const auto &SubOperand = Rule.getComplexSubOperand (DstChild .getName ());
1203
+ const auto &SubOperand = Rule.getComplexSubOperand (Dst .getName ());
1204
1204
if (SubOperand) {
1205
1205
DstMIBuilder.addRenderer <RenderComplexPatternOperand>(
1206
- *std::get<0 >(*SubOperand), DstChild .getName (), std::get<1 >(*SubOperand),
1206
+ *std::get<0 >(*SubOperand), Dst .getName (), std::get<1 >(*SubOperand),
1207
1207
std::get<2 >(*SubOperand));
1208
1208
return InsertPt;
1209
1209
}
1210
1210
1211
- if (!DstChild .isLeaf ()) {
1212
- if (DstChild .getOperator ()->isSubClassOf (" SDNodeXForm" )) {
1213
- auto &Child = DstChild .getChild (0 );
1214
- auto I = SDNodeXFormEquivs.find (DstChild .getOperator ());
1211
+ if (!Dst .isLeaf ()) {
1212
+ if (Dst .getOperator ()->isSubClassOf (" SDNodeXForm" )) {
1213
+ auto &Child = Dst .getChild (0 );
1214
+ auto I = SDNodeXFormEquivs.find (Dst .getOperator ());
1215
1215
if (I != SDNodeXFormEquivs.end ()) {
1216
- const Record *XFormOpc =
1217
- DstChild.getOperator ()->getValueAsDef (" Opcode" );
1216
+ const Record *XFormOpc = Dst.getOperator ()->getValueAsDef (" Opcode" );
1218
1217
if (XFormOpc->getName () == " timm" ) {
1219
1218
// If this is a TargetConstant, there won't be a corresponding
1220
1219
// instruction to transform. Instead, this will refer directly to an
@@ -1233,10 +1232,10 @@ Expected<action_iterator> GlobalISelEmitter::importExplicitUseRenderer(
1233
1232
1234
1233
// We accept 'bb' here. It's an operator because BasicBlockSDNode isn't
1235
1234
// inline, but in MI it's just another operand.
1236
- if (DstChild .getOperator ()->isSubClassOf (" SDNode" )) {
1237
- auto &ChildSDNI = CGP.getSDNodeInfo (DstChild .getOperator ());
1235
+ if (Dst .getOperator ()->isSubClassOf (" SDNode" )) {
1236
+ auto &ChildSDNI = CGP.getSDNodeInfo (Dst .getOperator ());
1238
1237
if (ChildSDNI.getSDClassName () == " BasicBlockSDNode" ) {
1239
- DstMIBuilder.addRenderer <CopyRenderer>(DstChild .getName ());
1238
+ DstMIBuilder.addRenderer <CopyRenderer>(Dst .getName ());
1240
1239
return InsertPt;
1241
1240
}
1242
1241
}
@@ -1245,26 +1244,25 @@ Expected<action_iterator> GlobalISelEmitter::importExplicitUseRenderer(
1245
1244
// rendered as operands.
1246
1245
// FIXME: The target should be able to choose sign-extended when appropriate
1247
1246
// (e.g. on Mips).
1248
- if (DstChild .getOperator ()->getName () == " timm" ) {
1249
- DstMIBuilder.addRenderer <CopyRenderer>(DstChild .getName ());
1247
+ if (Dst .getOperator ()->getName () == " timm" ) {
1248
+ DstMIBuilder.addRenderer <CopyRenderer>(Dst .getName ());
1250
1249
return InsertPt;
1251
1250
}
1252
- if (DstChild .getOperator ()->getName () == " tframeindex" ) {
1253
- DstMIBuilder.addRenderer <CopyRenderer>(DstChild .getName ());
1251
+ if (Dst .getOperator ()->getName () == " tframeindex" ) {
1252
+ DstMIBuilder.addRenderer <CopyRenderer>(Dst .getName ());
1254
1253
return InsertPt;
1255
1254
}
1256
- if (DstChild .getOperator ()->getName () == " imm" ) {
1257
- DstMIBuilder.addRenderer <CopyConstantAsImmRenderer>(DstChild .getName ());
1255
+ if (Dst .getOperator ()->getName () == " imm" ) {
1256
+ DstMIBuilder.addRenderer <CopyConstantAsImmRenderer>(Dst .getName ());
1258
1257
return InsertPt;
1259
1258
}
1260
- if (DstChild.getOperator ()->getName () == " fpimm" ) {
1261
- DstMIBuilder.addRenderer <CopyFConstantAsFPImmRenderer>(
1262
- DstChild.getName ());
1259
+ if (Dst.getOperator ()->getName () == " fpimm" ) {
1260
+ DstMIBuilder.addRenderer <CopyFConstantAsFPImmRenderer>(Dst.getName ());
1263
1261
return InsertPt;
1264
1262
}
1265
1263
1266
- if (DstChild .getOperator ()->isSubClassOf (" Instruction" )) {
1267
- auto OpTy = getInstResultType (DstChild , Target);
1264
+ if (Dst .getOperator ()->isSubClassOf (" Instruction" )) {
1265
+ auto OpTy = getInstResultType (Dst , Target);
1268
1266
if (!OpTy)
1269
1267
return OpTy.takeError ();
1270
1268
@@ -1274,29 +1272,28 @@ Expected<action_iterator> GlobalISelEmitter::importExplicitUseRenderer(
1274
1272
DstMIBuilder.addRenderer <TempRegRenderer>(TempRegID);
1275
1273
1276
1274
auto InsertPtOrError = createAndImportSubInstructionRenderer (
1277
- ++InsertPt, Rule, DstChild , TempRegID);
1275
+ ++InsertPt, Rule, Dst , TempRegID);
1278
1276
if (auto Error = InsertPtOrError.takeError ())
1279
1277
return std::move (Error);
1280
1278
return InsertPtOrError.get ();
1281
1279
}
1282
1280
1283
1281
return failedImport (" Dst pattern child isn't a leaf node or an MBB" +
1284
- llvm::to_string (DstChild ));
1282
+ llvm::to_string (Dst ));
1285
1283
}
1286
1284
1287
1285
// It could be a specific immediate in which case we should just check for
1288
1286
// that immediate.
1289
- if (const IntInit *ChildIntInit =
1290
- dyn_cast<IntInit>(DstChild.getLeafValue ())) {
1287
+ if (const IntInit *ChildIntInit = dyn_cast<IntInit>(Dst.getLeafValue ())) {
1291
1288
DstMIBuilder.addRenderer <ImmRenderer>(ChildIntInit->getValue ());
1292
1289
return InsertPt;
1293
1290
}
1294
1291
1295
1292
// Otherwise, we're looking for a bog-standard RegisterClass operand.
1296
- if (auto *ChildDefInit = dyn_cast<DefInit>(DstChild .getLeafValue ())) {
1293
+ if (auto *ChildDefInit = dyn_cast<DefInit>(Dst .getLeafValue ())) {
1297
1294
auto *ChildRec = ChildDefInit->getDef ();
1298
1295
1299
- ArrayRef<TypeSetByHwMode> ChildTypes = DstChild .getExtTypes ();
1296
+ ArrayRef<TypeSetByHwMode> ChildTypes = Dst .getExtTypes ();
1300
1297
if (ChildTypes.size () != 1 )
1301
1298
return failedImport (" Dst pattern child has multiple results" );
1302
1299
@@ -1317,11 +1314,11 @@ Expected<action_iterator> GlobalISelEmitter::importExplicitUseRenderer(
1317
1314
if (ChildRec->isSubClassOf (" RegisterOperand" ) &&
1318
1315
!ChildRec->isValueUnset (" GIZeroRegister" )) {
1319
1316
DstMIBuilder.addRenderer <CopyOrAddZeroRegRenderer>(
1320
- DstChild .getName (), ChildRec->getValueAsDef (" GIZeroRegister" ));
1317
+ Dst .getName (), ChildRec->getValueAsDef (" GIZeroRegister" ));
1321
1318
return InsertPt;
1322
1319
}
1323
1320
1324
- DstMIBuilder.addRenderer <CopyRenderer>(DstChild .getName ());
1321
+ DstMIBuilder.addRenderer <CopyRenderer>(Dst .getName ());
1325
1322
return InsertPt;
1326
1323
}
1327
1324
@@ -1337,9 +1334,9 @@ Expected<action_iterator> GlobalISelEmitter::importExplicitUseRenderer(
1337
1334
return failedImport (
1338
1335
" SelectionDAG ComplexPattern not mapped to GlobalISel" );
1339
1336
1340
- const OperandMatcher &OM = Rule.getOperandMatcher (DstChild .getName ());
1337
+ const OperandMatcher &OM = Rule.getOperandMatcher (Dst .getName ());
1341
1338
DstMIBuilder.addRenderer <RenderComplexPatternOperand>(
1342
- *ComplexPattern->second , DstChild .getName (),
1339
+ *ComplexPattern->second , Dst .getName (),
1343
1340
OM.getAllocatedTemporariesBaseID ());
1344
1341
return InsertPt;
1345
1342
}
@@ -1350,9 +1347,8 @@ Expected<action_iterator> GlobalISelEmitter::importExplicitUseRenderer(
1350
1347
1351
1348
// Handle the case where the MVT/register class is omitted in the dest pattern
1352
1349
// but MVT exists in the source pattern.
1353
- if (isa<UnsetInit>(DstChild.getLeafValue ()) &&
1354
- Rule.hasOperand (DstChild.getName ())) {
1355
- DstMIBuilder.addRenderer <CopyRenderer>(DstChild.getName ());
1350
+ if (isa<UnsetInit>(Dst.getLeafValue ()) && Rule.hasOperand (Dst.getName ())) {
1351
+ DstMIBuilder.addRenderer <CopyRenderer>(Dst.getName ());
1356
1352
return InsertPt;
1357
1353
}
1358
1354
return failedImport (" Dst pattern child is an unsupported kind" );
0 commit comments