[llvm] [RISCV][GlobalISel] Select G_GLOBAL_VALUE (PR #68380)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Fri Oct 6 13:18:38 PDT 2023
================
@@ -244,6 +264,35 @@ bool RISCVInstructionSelector::select(MachineInstr &MI) {
}
}
+bool RISCVInstructionSelector::replacePtrWithInt(MachineOperand &Op,
+ MachineIRBuilder &MIB,
+ MachineRegisterInfo &MRI) {
+ Register PtrReg = Op.getReg();
+ assert(MRI.getType(PtrReg).isPointer() && "Operand is not a pointer!");
+
+ const LLT XLenLLT = LLT::scalar(STI.getXLen());
+ auto PtrToInt = MIB.buildPtrToInt(XLenLLT, PtrReg);
+ MRI.setRegBank(PtrToInt.getReg(0), RBI.getRegBank(RISCV::GPRRegBankID));
+ MRI.setType(PtrReg, XLenLLT);
+ Op.setReg(PtrToInt.getReg(0));
+ return select(*PtrToInt);
+}
+
+void RISCVInstructionSelector::preISelLower(MachineInstr &MI,
----------------
arsenm wrote:
Really shouldn't have to do things like this
https://github.com/llvm/llvm-project/pull/68380
More information about the llvm-commits
mailing list