[llvm] Address Codegen bug related to marking subregister MachineOperand defines as undef (PR #134929)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Thu May 1 01:27:16 PDT 2025


================
@@ -1570,6 +1570,29 @@ void LiveIntervals::handleMove(MachineInstr &MI, bool UpdateFlags) {
 
   HMEditor HME(*this, *MRI, *TRI, OldIndex, NewIndex, UpdateFlags);
   HME.updateAllRanges(&MI);
+
+  // Check to make sure that there are no subreg defintions marked undef
+  // after the moved operation. If so, mark the current instruction as undef
+  // instead.
+  for (MachineOperand &MO : MI.operands()) {
----------------
arsenm wrote:

In theory the LiveIntervals are correct at this point, and the MIR is out of sync. It would probably be easier to express this in terms of operand-is-not-undef-but-not-live-at-this-point

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


More information about the llvm-commits mailing list