[PATCH] D151848: [X86, Peephole] Enable FoldImmediate for X86

David Li via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 20 14:35:15 PDT 2023


davidxl added inline comments.


================
Comment at: llvm/lib/CodeGen/PeepholeOptimizer.cpp:1357
     DenseMap<Register, MachineInstr *> &ImmDefMIs) {
   const MCInstrDesc &MCID = MI.getDesc();
+  if (MCID.getNumDefs() != 1 || !MI.getOperand(0).isReg())
----------------
The code looks cleaner with early return like before:

if (!MI.isMoveImmediate() && !TII->getConstValDefinedInReg(MI,Reg,ImmVal))
    return false;


================
Comment at: llvm/lib/CodeGen/PeepholeOptimizer.cpp:1358
   const MCInstrDesc &MCID = MI.getDesc();
-  if (!MI.isMoveImmediate())
-    return false;
-  if (MCID.getNumDefs() != 1)
+  if (MCID.getNumDefs() != 1 || !MI.getOperand(0).isReg())
     return false;
----------------
Should this be

if (MI.isMoveImmediate() && MCID.getNumDefs() != 1 
   || !MI.isMoveImmediate() && !MI.getOperand(0).isReg())
   return false;


================
Comment at: llvm/lib/Target/X86/X86InstrInfo.cpp:4895
+
+/// Real implementation of FoldImmediate.
+bool X86InstrInfo::FoldImmediateImpl(MachineInstr &UseMI, MachineInstr *DefMI,
----------------
document parameters and return.


================
Comment at: llvm/lib/Target/X86/X86InstrInfo.cpp:4967
+  if ((NewOpc == X86::SUB64ri32 || NewOpc == X86::SUB32ri) &&
+      UseMI.findRegisterUseOperandIdx(Reg) != 2)
+    return false;
----------------
brief commend here.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D151848/new/

https://reviews.llvm.org/D151848



More information about the llvm-commits mailing list