Skip to content

Commit 417cd79

Browse files
committed
Revert "AMDGPU: Treat WMMA XDL ops as TRANS in S_DELAY_ALU insertion for gfx1250 (llvm#149208)"
This reverts commit b52cf75.
1 parent 4d3ada3 commit 417cd79

File tree

6 files changed

+11
-129
lines changed

6 files changed

+11
-129
lines changed

llvm/lib/Target/AMDGPU/AMDGPUInsertDelayAlu.cpp

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ namespace {
2525

2626
class AMDGPUInsertDelayAlu {
2727
public:
28-
const GCNSubtarget *ST;
2928
const SIInstrInfo *SII;
3029
const TargetRegisterInfo *TRI;
3130

@@ -66,16 +65,13 @@ class AMDGPUInsertDelayAlu {
6665
// Types of delay that can be encoded in an s_delay_alu instruction.
6766
enum DelayType { VALU, TRANS, SALU, OTHER };
6867

69-
// Get the delay type for a MachineInstr.
70-
DelayType getDelayType(const MachineInstr &MI) {
71-
if (SIInstrInfo::isTRANS(MI))
68+
// Get the delay type for an instruction with the specified TSFlags.
69+
static DelayType getDelayType(uint64_t TSFlags) {
70+
if (TSFlags & SIInstrFlags::TRANS)
7271
return TRANS;
73-
// WMMA XDL ops are treated the same as TRANS.
74-
if (AMDGPU::isGFX1250(*ST) && SII->isXDLWMMA(MI))
75-
return TRANS;
76-
if (SIInstrInfo::isVALU(MI))
72+
if (TSFlags & SIInstrFlags::VALU)
7773
return VALU;
78-
if (SIInstrInfo::isSALU(MI))
74+
if (TSFlags & SIInstrFlags::SALU)
7975
return SALU;
8076
return OTHER;
8177
}
@@ -372,7 +368,7 @@ class AMDGPUInsertDelayAlu {
372368
continue;
373369
}
374370

375-
DelayType Type = getDelayType(MI);
371+
DelayType Type = getDelayType(MI.getDesc().TSFlags);
376372

377373
if (instructionWaitsForSGPRWrites(MI)) {
378374
auto It = State.find(LastSGPRFromVALU);
@@ -460,12 +456,12 @@ class AMDGPUInsertDelayAlu {
460456
LLVM_DEBUG(dbgs() << "AMDGPUInsertDelayAlu running on " << MF.getName()
461457
<< "\n");
462458

463-
ST = &MF.getSubtarget<GCNSubtarget>();
464-
if (!ST->hasDelayAlu())
459+
const GCNSubtarget &ST = MF.getSubtarget<GCNSubtarget>();
460+
if (!ST.hasDelayAlu())
465461
return false;
466462

467-
SII = ST->getInstrInfo();
468-
TRI = ST->getRegisterInfo();
463+
SII = ST.getInstrInfo();
464+
TRI = ST.getRegisterInfo();
469465
SchedModel = &SII->getSchedModel();
470466

471467
// Calculate the delay state for each basic block, iterating until we reach

llvm/lib/Target/AMDGPU/SIInstrInfo.cpp

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10594,23 +10594,10 @@ bool SIInstrInfo::isGlobalMemoryObject(const MachineInstr *MI) const {
1059410594
return TargetInstrInfo::isGlobalMemoryObject(MI);
1059510595
}
1059610596

10597-
bool SIInstrInfo::isXDLWMMA(const MachineInstr &MI) const {
10598-
if (!isWMMA(MI) && !isSWMMAC(MI))
10599-
return false;
10600-
10601-
if (AMDGPU::isGFX1250(ST))
10602-
return AMDGPU::getWMMAIsXDL(MI.getOpcode());
10603-
10604-
return true;
10605-
}
10606-
1060710597
bool SIInstrInfo::isXDL(const MachineInstr &MI) const {
1060810598
unsigned Opcode = MI.getOpcode();
1060910599

10610-
if (AMDGPU::isGFX12Plus(ST))
10611-
return isDOT(MI) || isXDLWMMA(MI);
10612-
10613-
if (!isMAI(MI) || isDGEMM(Opcode) ||
10600+
if (!SIInstrInfo::isMAI(MI) || isDGEMM(Opcode) ||
1061410601
Opcode == AMDGPU::V_ACCVGPR_WRITE_B32_e64 ||
1061510602
Opcode == AMDGPU::V_ACCVGPR_READ_B32_e64)
1061610603
return false;

llvm/lib/Target/AMDGPU/SIInstrInfo.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -883,8 +883,6 @@ class SIInstrInfo final : public AMDGPUGenInstrInfo {
883883
return get(Opcode).TSFlags & SIInstrFlags::IsDOT;
884884
}
885885

886-
bool isXDLWMMA(const MachineInstr &MI) const;
887-
888886
bool isXDL(const MachineInstr &MI) const;
889887

890888
static bool isDGEMM(unsigned Opcode) { return AMDGPU::getMAIIsDGEMM(Opcode); }

llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,6 @@ unsigned getCompletionActionImplicitArgPosition(unsigned CodeObjectVersion) {
296296
#define GET_MIMGOffsetMappingTable_IMPL
297297
#define GET_MIMGG16MappingTable_IMPL
298298
#define GET_MAIInstInfoTable_IMPL
299-
#define GET_WMMAInstInfoTable_IMPL
300299
#include "AMDGPUGenSearchableTables.inc"
301300

302301
int getMIMGOpcode(unsigned BaseOpcode, unsigned MIMGEncoding,
@@ -569,11 +568,6 @@ bool getMAIIsGFX940XDL(unsigned Opc) {
569568
return Info && Info->is_gfx940_xdl;
570569
}
571570

572-
bool getWMMAIsXDL(unsigned Opc) {
573-
const WMMAInstInfo *Info = getWMMAInstInfoHelper(Opc);
574-
return Info ? Info->is_wmma_xdl : false;
575-
}
576-
577571
uint8_t mfmaScaleF8F6F4FormatToNumRegs(unsigned EncodingVal) {
578572
switch (EncodingVal) {
579573
case MFMAScaleFormats::FP6_E2M3:

llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -119,11 +119,6 @@ struct True16D16Info {
119119
unsigned LoOp;
120120
};
121121

122-
struct WMMAInstInfo {
123-
uint16_t Opcode;
124-
bool is_wmma_xdl;
125-
};
126-
127122
#define GET_MIMGBaseOpcode_DECL
128123
#define GET_MIMGDim_DECL
129124
#define GET_MIMGEncoding_DECL
@@ -134,7 +129,6 @@ struct WMMAInstInfo {
134129
#define GET_isMFMA_F8F6F4Table_DECL
135130
#define GET_isCvtScaleF32_F32F16ToF8F4Table_DECL
136131
#define GET_True16D16Table_DECL
137-
#define GET_WMMAInstInfoTable_DECL
138132
#include "AMDGPUGenSearchableTables.inc"
139133

140134
namespace IsaInfo {
@@ -599,9 +593,6 @@ bool getMAIIsDGEMM(unsigned Opc);
599593
LLVM_READONLY
600594
bool getMAIIsGFX940XDL(unsigned Opc);
601595

602-
LLVM_READONLY
603-
bool getWMMAIsXDL(unsigned Opc);
604-
605596
// Get an equivalent BitOp3 for a binary logical \p Opc.
606597
// \returns BitOp3 modifier for the logical operation or zero.
607598
// Used in VOPD3 conversion.

llvm/test/CodeGen/AMDGPU/insert-delay-alu-wmma-xdl.mir

Lines changed: 0 additions & 84 deletions
This file was deleted.

0 commit comments

Comments
 (0)