Skip to content

Commit ee9f96b

Browse files
committed
[RISCV][GISel] Add FPR register bank.
We need this so isel can use getRegBankFromRegClass to disambiguate FSW and SW patterns without depending on pattern order in the tablegen source files. While there, add a few missing GPR register classes and sort them in the order they appear in the tblgen output file.
1 parent c654193 commit ee9f96b

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

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

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,17 +67,25 @@ RISCVRegisterBankInfo::getRegBankFromRegClass(const TargetRegisterClass &RC,
6767
default:
6868
llvm_unreachable("Register class not supported");
6969
case RISCV::GPRRegClassID:
70+
case RISCV::GPRF16RegClassID:
71+
case RISCV::GPRF32RegClassID:
7072
case RISCV::GPRNoX0RegClassID:
7173
case RISCV::GPRNoX0X2RegClassID:
74+
case RISCV::GPRJALRRegClassID:
7275
case RISCV::GPRTCRegClassID:
73-
case RISCV::GPRCRegClassID:
7476
case RISCV::GPRC_and_GPRTCRegClassID:
77+
case RISCV::GPRCRegClassID:
7578
case RISCV::GPRC_and_SR07RegClassID:
76-
case RISCV::GPRX0RegClassID:
77-
case RISCV::GPRJALRRegClassID:
78-
case RISCV::SPRegClassID:
7979
case RISCV::SR07RegClassID:
80+
case RISCV::SPRegClassID:
81+
case RISCV::GPRX0RegClassID:
8082
return getRegBank(RISCV::GPRRegBankID);
83+
case RISCV::FPR64RegClassID:
84+
case RISCV::FPR16RegClassID:
85+
case RISCV::FPR32RegClassID:
86+
case RISCV::FPR64CRegClassID:
87+
case RISCV::FPR32CRegClassID:
88+
return getRegBank(RISCV::FPRRegBankID);
8189
}
8290
}
8391

llvm/lib/Target/RISCV/GISel/RISCVRegisterBanks.td

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,6 @@
1111

1212
/// General Purpose Registers: X.
1313
def GPRRegBank : RegisterBank<"GPRB", [GPR]>;
14+
15+
/// Floating Point Registers: F.
16+
def FPRRegBank : RegisterBank<"FPRB", [FPR64]>;

0 commit comments

Comments
 (0)