Skip to content

Commit b8c86dc

Browse files
authored
[SystemZ] Remove custom implementation of optimizeLoadInst [NFC] (#133123)
In 236f938, I introduced a generic version of this routine. I believe that the SystemZ specific version of this is less general than the generic version, and is thus unrequired. I wasn't 100% given the difference in sub-register, multiple use and defs, but from the SystemZ code, it looks like those cases simply don't arise?
1 parent 4c4e4e4 commit b8c86dc

File tree

2 files changed

+0
-29
lines changed

2 files changed

+0
-29
lines changed

llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp

-25
Original file line numberDiff line numberDiff line change
@@ -670,31 +670,6 @@ void SystemZInstrInfo::insertSelect(MachineBasicBlock &MBB,
670670
.addImm(CCValid).addImm(CCMask);
671671
}
672672

673-
MachineInstr *SystemZInstrInfo::optimizeLoadInstr(MachineInstr &MI,
674-
const MachineRegisterInfo *MRI,
675-
Register &FoldAsLoadDefReg,
676-
MachineInstr *&DefMI) const {
677-
// Check whether we can move the DefMI load, and that it only has one use.
678-
DefMI = MRI->getVRegDef(FoldAsLoadDefReg);
679-
assert(DefMI);
680-
bool SawStore = false;
681-
if (!DefMI->isSafeToMove(SawStore) || !MRI->hasOneNonDBGUse(FoldAsLoadDefReg))
682-
return nullptr;
683-
684-
int UseOpIdx =
685-
MI.findRegisterUseOperandIdx(FoldAsLoadDefReg, /*TRI=*/nullptr);
686-
assert(UseOpIdx != -1 && "Expected FoldAsLoadDefReg to be used by MI.");
687-
688-
// Check whether we can fold the load.
689-
if (MachineInstr *FoldMI =
690-
foldMemoryOperand(MI, {((unsigned)UseOpIdx)}, *DefMI)) {
691-
FoldAsLoadDefReg = 0;
692-
return FoldMI;
693-
}
694-
695-
return nullptr;
696-
}
697-
698673
bool SystemZInstrInfo::foldImmediate(MachineInstr &UseMI, MachineInstr &DefMI,
699674
Register Reg,
700675
MachineRegisterInfo *MRI) const {

llvm/lib/Target/SystemZ/SystemZInstrInfo.h

-4
Original file line numberDiff line numberDiff line change
@@ -258,10 +258,6 @@ class SystemZInstrInfo : public SystemZGenInstrInfo {
258258
const DebugLoc &DL, Register DstReg,
259259
ArrayRef<MachineOperand> Cond, Register TrueReg,
260260
Register FalseReg) const override;
261-
MachineInstr *optimizeLoadInstr(MachineInstr &MI,
262-
const MachineRegisterInfo *MRI,
263-
Register &FoldAsLoadDefReg,
264-
MachineInstr *&DefMI) const override;
265261
bool foldImmediate(MachineInstr &UseMI, MachineInstr &DefMI, Register Reg,
266262
MachineRegisterInfo *MRI) const override;
267263

0 commit comments

Comments
 (0)