[llvm] [CodeGen] commuteInstruction should update implicit-def (PR #131361)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 10 03:48:16 PDT 2025
================
@@ -238,7 +238,14 @@ MachineInstr *TargetInstrInfo::commuteInstructionImpl(MachineInstr &MI,
}
if (HasDef) {
- CommutedMI->getOperand(0).setReg(Reg0);
+ // Use `substituteRegister` so that for a case like this:
+ // %0.sub = INST %0.sub(tied), %1.sub, implicit-def %0
+ // the implicit-def is also updated, to result in:
+ // %1.sub = INST %1.sub(tied), %0.sub, implicit-def %1
+ const TargetRegisterInfo &TRI =
+ *MI.getMF()->getSubtarget().getRegisterInfo();
+ Register FromReg = CommutedMI->getOperand(0).getReg();
+ CommutedMI->substituteRegister(FromReg, Reg0, /*SubRegIdx*/ 0, TRI);
----------------
arsenm wrote:
```suggestion
CommutedMI->substituteRegister(FromReg, Reg0, /*SubRegIdx=*/ 0, TRI);
```
https://github.com/llvm/llvm-project/pull/131361
More information about the llvm-commits
mailing list