aboutsummaryrefslogtreecommitdiff
path: root/backend/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.h
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-13 19:04:49 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-13 19:04:49 +0800
commit1ef9d699d3160a9f79e89f423352fbb8d43e70d7 (patch)
tree4f09997dbf17124c1ea5572b01f7061b1493c0c8 /backend/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.h
parent1ecaa5028a39cdfd9b9590053d802e8049d346d5 (diff)
downloadrcc-project-1ef9d699d3160a9f79e89f423352fbb8d43e70d7.tar.gz
rcc-project-1ef9d699d3160a9f79e89f423352fbb8d43e70d7.tar.xz
[RISCV] Match LLVM register bank mappings
Diffstat (limited to 'backend/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.h')
-rw-r--r--backend/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/backend/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.h b/backend/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.h
index 543bc4d..69eb539 100644
--- a/backend/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.h
+++ b/backend/lib/Target/RISCV/GISel/RISCVRegisterBankInfo.h
@@ -9,13 +9,15 @@ namespace rcc::riscv {
class RISCVRegisterBankInfo final : public RegisterBankInfo {
public:
- [[nodiscard]] Expected<RegisterBankID> selectBank(const MachineFunction &Function, Register Reg,
- const VirtualRegisterInfo &Info,
- const MachineInstr *Instruction,
- const TargetDescription &Target) const override;
- [[nodiscard]] Expected<void> constrainInstruction(MachineInstr &Instruction,
- MachineFunction &Function,
- const TargetDescription &Target) const override;
+ [[nodiscard]] Expected<RegisterBankSelection>
+ selectBank(const MachineFunction &Function, Register Reg, const VirtualRegisterInfo &Info,
+ const MachineInstr *Instruction, const TargetDescription &Target) const override;
+ [[nodiscard]] Expected<RegisterBankInstructionMapping>
+ getInstructionMapping(const MachineInstr &Instruction, const MachineFunction &Function,
+ const TargetDescription &Target) const override;
+ [[nodiscard]] Expected<void> constrainSelectedInstruction(MachineInstr &Instruction,
+ MachineFunction &Function,
+ const TargetDescription &Target) const;
[[nodiscard]] Expected<void> constrainRegister(MachineFunction &Function, Register Reg,
const TargetDescription &Target) const;
[[nodiscard]] Expected<void> validateInstruction(const MachineInstr &Instruction,