[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;
----------------
arsenm wrote:

This check doesn't make sense; COPY between classes is one of the primary reasons to use a copy?

https://github.com/llvm/llvm-project/pull/197256


More information about the llvm-branch-commits mailing list