[llvm] [RegAllocBase] Produce IMPLICIT_DEF instead of COPY undef during cleanupFailedVReg (PR #147392)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Thu Jul 10 02:50:23 PDT 2025


arsenm wrote:

I think this is a more correct fix:

```
diff --git a/llvm/lib/CodeGen/TargetInstrInfo.cpp b/llvm/lib/CodeGen/TargetInstrInfo.cpp
index 8b82deb2a9d8..a36c3e03e889 100644
--- a/llvm/lib/CodeGen/TargetInstrInfo.cpp
+++ b/llvm/lib/CodeGen/TargetInstrInfo.cpp
@@ -476,6 +476,9 @@ static const TargetRegisterClass *canFoldCopy(const MachineInstr &MI,
   if (FoldOp.getSubReg() || LiveOp.getSubReg())
     return nullptr;
 
+  if (LiveOp.isUndef())
+    return nullptr;
+
   Register FoldReg = FoldOp.getReg();
   Register LiveReg = LiveOp.getReg();
 
```



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


More information about the llvm-commits mailing list