================
@@ -7594,16 +7595,28 @@ MachineInstr *X86InstrInfo::foldMemoryOperandImpl(
 
     if (NoNDDM && !IsTwoAddr) {
       Register SrcReg = MI.getOperand(1).getReg();
+      unsigned SrcSub = MI.getOperand(1).getSubReg();
       if (MI.killsRegister(SrcReg, /*TRI=*/nullptr))
         return NewMI;
 
       const TargetRegisterClass &RC = *MF.getRegInfo().getRegClass(SrcReg);
-      Register NewSrc = MF.getRegInfo().createVirtualRegister(&RC);
-      BuildMI(*NewMI->getParent(), *NewMI, MI.getDebugLoc(),
-              get(TargetOpcode::COPY))
-          .addReg(NewSrc, RegState::Define)
-          .addReg(SrcReg);
+      MachineRegisterInfo &MRI = MF.getRegInfo();
+      unsigned SubReg = X86::NoSubRegister;
+      Register NewSrc;
+
+      if (MRI.isSSA()) {
----------------
phoebewang wrote:

foldMemoryOperand called by X86FastISel and PeepholeOptimizer. Both are SSA 
form.

https://github.com/llvm/llvm-project/pull/191368
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to