@@ -264,8 +264,6 @@ RISCVRegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
264
264
SmallVector<const ValueMapping *, 4 > OpdsMapping (NumOperands);
265
265
266
266
switch (Opc) {
267
- case TargetOpcode::G_INVOKE_REGION_START:
268
- break ;
269
267
case TargetOpcode::G_LOAD: {
270
268
LLT Ty = MRI.getType (MI.getOperand (0 ).getReg ());
271
269
OpdsMapping[0 ] = GPRValueMapping;
@@ -308,28 +306,6 @@ RISCVRegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
308
306
OpdsMapping[0 ] = getFPValueMapping (Ty.getSizeInBits ());
309
307
break ;
310
308
}
311
- case TargetOpcode::G_CONSTANT:
312
- case TargetOpcode::G_FRAME_INDEX:
313
- case TargetOpcode::G_GLOBAL_VALUE:
314
- case TargetOpcode::G_JUMP_TABLE:
315
- case TargetOpcode::G_BRCOND:
316
- OpdsMapping[0 ] = GPRValueMapping;
317
- break ;
318
- case TargetOpcode::G_BR:
319
- break ;
320
- case TargetOpcode::G_BRJT:
321
- OpdsMapping[0 ] = GPRValueMapping;
322
- OpdsMapping[2 ] = GPRValueMapping;
323
- break ;
324
- case TargetOpcode::G_ICMP:
325
- OpdsMapping[0 ] = GPRValueMapping;
326
- OpdsMapping[2 ] = GPRValueMapping;
327
- OpdsMapping[3 ] = GPRValueMapping;
328
- break ;
329
- case TargetOpcode::G_SEXT_INREG:
330
- OpdsMapping[0 ] = GPRValueMapping;
331
- OpdsMapping[1 ] = GPRValueMapping;
332
- break ;
333
309
case TargetOpcode::G_SELECT:
334
310
OpdsMapping[0 ] = GPRValueMapping;
335
311
OpdsMapping[1 ] = GPRValueMapping;
@@ -379,7 +355,14 @@ RISCVRegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
379
355
break ;
380
356
}
381
357
default :
382
- return getInvalidInstructionMapping ();
358
+ // By default map all scalars to GPR.
359
+ for (unsigned Idx = 0 ; Idx < NumOperands; ++Idx) {
360
+ auto &MO = MI.getOperand (Idx);
361
+ if (!MO.isReg ())
362
+ continue ;
363
+ OpdsMapping[Idx] = GPRValueMapping;
364
+ }
365
+ break ;
383
366
}
384
367
385
368
return getInstructionMapping (DefaultMappingID, /* Cost=*/ 1 ,
0 commit comments