[llvm] 220e095 - [AMDGPU] Remove unused function splitScalar64BitAddSub
Jay Foad via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 12 07:02:03 PST 2023
Author: Jay Foad
Date: 2023-12-12T15:01:57Z
New Revision: 220e095a2c26b26a8d7a74b90461b650e020d2f2
URL: https://github.com/llvm/llvm-project/commit/220e095a2c26b26a8d7a74b90461b650e020d2f2
DIFF: https://github.com/llvm/llvm-project/commit/220e095a2c26b26a8d7a74b90461b650e020d2f2.diff
LOG: [AMDGPU] Remove unused function splitScalar64BitAddSub
Added:
Modified:
llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
llvm/lib/Target/AMDGPU/SIInstrInfo.h
Removed:
################################################################################
diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
index 42eb4fa55ed52..d4e4526795f3b 100644
--- a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
+++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
@@ -7559,80 +7559,6 @@ void SIInstrInfo::splitScalar64BitUnaryOp(SIInstrWorklist &Worklist,
addUsersToMoveToVALUWorklist(FullDestReg, MRI, Worklist);
}
-void SIInstrInfo::splitScalar64BitAddSub(SIInstrWorklist &Worklist,
- MachineInstr &Inst,
- MachineDominatorTree *MDT) const {
- bool IsAdd = (Inst.getOpcode() == AMDGPU::S_ADD_U64_PSEUDO);
-
- MachineBasicBlock &MBB = *Inst.getParent();
- MachineRegisterInfo &MRI = MBB.getParent()->getRegInfo();
- const auto *CarryRC = RI.getRegClass(AMDGPU::SReg_1_XEXECRegClassID);
-
- Register FullDestReg = MRI.createVirtualRegister(&AMDGPU::VReg_64RegClass);
- Register DestSub0 = MRI.createVirtualRegister(&AMDGPU::VGPR_32RegClass);
- Register DestSub1 = MRI.createVirtualRegister(&AMDGPU::VGPR_32RegClass);
-
- Register CarryReg = MRI.createVirtualRegister(CarryRC);
- Register DeadCarryReg = MRI.createVirtualRegister(CarryRC);
-
- MachineOperand &Dest = Inst.getOperand(0);
- MachineOperand &Src0 = Inst.getOperand(1);
- MachineOperand &Src1 = Inst.getOperand(2);
- const DebugLoc &DL = Inst.getDebugLoc();
- MachineBasicBlock::iterator MII = Inst;
-
- const TargetRegisterClass *Src0RC = MRI.getRegClass(Src0.getReg());
- const TargetRegisterClass *Src1RC = MRI.getRegClass(Src1.getReg());
- const TargetRegisterClass *Src0SubRC =
- RI.getSubRegisterClass(Src0RC, AMDGPU::sub0);
- const TargetRegisterClass *Src1SubRC =
- RI.getSubRegisterClass(Src1RC, AMDGPU::sub0);
-
- MachineOperand SrcReg0Sub0 = buildExtractSubRegOrImm(MII, MRI, Src0, Src0RC,
- AMDGPU::sub0, Src0SubRC);
- MachineOperand SrcReg1Sub0 = buildExtractSubRegOrImm(MII, MRI, Src1, Src1RC,
- AMDGPU::sub0, Src1SubRC);
-
-
- MachineOperand SrcReg0Sub1 = buildExtractSubRegOrImm(MII, MRI, Src0, Src0RC,
- AMDGPU::sub1, Src0SubRC);
- MachineOperand SrcReg1Sub1 = buildExtractSubRegOrImm(MII, MRI, Src1, Src1RC,
- AMDGPU::sub1, Src1SubRC);
-
- unsigned LoOpc = IsAdd ? AMDGPU::V_ADD_CO_U32_e64 : AMDGPU::V_SUB_CO_U32_e64;
- MachineInstr *LoHalf =
- BuildMI(MBB, MII, DL, get(LoOpc), DestSub0)
- .addReg(CarryReg, RegState::Define)
- .add(SrcReg0Sub0)
- .add(SrcReg1Sub0)
- .addImm(0); // clamp bit
-
- unsigned HiOpc = IsAdd ? AMDGPU::V_ADDC_U32_e64 : AMDGPU::V_SUBB_U32_e64;
- MachineInstr *HiHalf =
- BuildMI(MBB, MII, DL, get(HiOpc), DestSub1)
- .addReg(DeadCarryReg, RegState::Define | RegState::Dead)
- .add(SrcReg0Sub1)
- .add(SrcReg1Sub1)
- .addReg(CarryReg, RegState::Kill)
- .addImm(0); // clamp bit
-
- BuildMI(MBB, MII, DL, get(TargetOpcode::REG_SEQUENCE), FullDestReg)
- .addReg(DestSub0)
- .addImm(AMDGPU::sub0)
- .addReg(DestSub1)
- .addImm(AMDGPU::sub1);
-
- MRI.replaceRegWith(Dest.getReg(), FullDestReg);
-
- // Try to legalize the operands in case we need to swap the order to keep it
- // valid.
- legalizeOperands(*LoHalf, MDT);
- legalizeOperands(*HiHalf, MDT);
-
- // Move all users of this moved value.
- addUsersToMoveToVALUWorklist(FullDestReg, MRI, Worklist);
-}
-
void SIInstrInfo::splitScalar64BitBinaryOp(SIInstrWorklist &Worklist,
MachineInstr &Inst, unsigned Opcode,
MachineDominatorTree *MDT) const {
diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.h b/llvm/lib/Target/AMDGPU/SIInstrInfo.h
index 0ce31ac6d54ec..e794d8cf7cc22 100644
--- a/llvm/lib/Target/AMDGPU/SIInstrInfo.h
+++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.h
@@ -134,9 +134,6 @@ class SIInstrInfo final : public AMDGPUGenInstrInfo {
void splitScalar64BitUnaryOp(SIInstrWorklist &Worklist, MachineInstr &Inst,
unsigned Opcode, bool Swap = false) const;
- void splitScalar64BitAddSub(SIInstrWorklist &Worklist, MachineInstr &Inst,
- MachineDominatorTree *MDT = nullptr) const;
-
void splitScalar64BitBinaryOp(SIInstrWorklist &Worklist, MachineInstr &Inst,
unsigned Opcode,
MachineDominatorTree *MDT = nullptr) const;
More information about the llvm-commits
mailing list