Skip to content

Commit 8630cf2

Browse files
committed
[RISCV][GISel] Add a default case to map registers to GPRB in register bank selection. NFC
This reduces the number of opcodes we need to list explicitly.
1 parent 2323f48 commit 8630cf2

File tree

1 file changed

+8
-25
lines changed

1 file changed

+8
-25
lines changed

llvm/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.cpp

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -264,8 +264,6 @@ RISCVRegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
264264
SmallVector<const ValueMapping *, 4> OpdsMapping(NumOperands);
265265

266266
switch (Opc) {
267-
case TargetOpcode::G_INVOKE_REGION_START:
268-
break;
269267
case TargetOpcode::G_LOAD: {
270268
LLT Ty = MRI.getType(MI.getOperand(0).getReg());
271269
OpdsMapping[0] = GPRValueMapping;
@@ -308,28 +306,6 @@ RISCVRegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
308306
OpdsMapping[0] = getFPValueMapping(Ty.getSizeInBits());
309307
break;
310308
}
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;
333309
case TargetOpcode::G_SELECT:
334310
OpdsMapping[0] = GPRValueMapping;
335311
OpdsMapping[1] = GPRValueMapping;
@@ -379,7 +355,14 @@ RISCVRegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
379355
break;
380356
}
381357
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;
383366
}
384367

385368
return getInstructionMapping(DefaultMappingID, /*Cost=*/1,

0 commit comments

Comments
 (0)