[llvm-branch-commits] [llvm] [WebAssembly][GlobalISel] Implement `COPY` (PR #197256)
Matt Arsenault via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Wed May 13 06:27:38 PDT 2026
================
@@ -83,13 +84,39 @@ WebAssemblyInstructionSelector::WebAssemblyInstructionSelector(
{
}
+bool WebAssemblyInstructionSelector::selectCopy(
+ MachineInstr &I, MachineRegisterInfo &MRI) const {
+ const TargetRegisterClass *DstRC =
+ TRI.getConstrainedRegClassForOperand(I.getOperand(0), MRI);
+ if (!DstRC)
+ return false;
+
+ const TargetRegisterClass *SrcRC =
+ TRI.getConstrainedRegClassForOperand(I.getOperand(1), MRI);
+ if (!SrcRC)
+ return false;
+
+ if (DstRC != SrcRC)
+ return false;
+
+ if (I.getOperand(0).getReg().isVirtual())
+ MRI.setRegClass(I.getOperand(0).getReg(), DstRC);
+ if (I.getOperand(1).getReg().isVirtual())
+ MRI.setRegClass(I.getOperand(1).getReg(), SrcRC);
----------------
arsenm wrote:
RBI.constrainGenericRegister(DstReg, *RC, *MRI)?
https://github.com/llvm/llvm-project/pull/197256
More information about the llvm-branch-commits
mailing list