@@ -216,8 +216,7 @@ class SILoadStoreOptimizer : public MachineFunctionPass {
216
216
CombineInfo &Paired, bool Modify = false );
217
217
static bool widthsFit (const GCNSubtarget &STI, const CombineInfo &CI,
218
218
const CombineInfo &Paired);
219
- static unsigned getNewOpcode (const CombineInfo &CI, const CombineInfo &Paired,
220
- const GCNSubtarget *STI = nullptr );
219
+ unsigned getNewOpcode (const CombineInfo &CI, const CombineInfo &Paired);
221
220
static std::pair<unsigned , unsigned > getSubRegIdxs (const CombineInfo &CI,
222
221
const CombineInfo &Paired);
223
222
const TargetRegisterClass *
@@ -344,7 +343,6 @@ static unsigned getOpcodeWidth(const MachineInstr &MI, const SIInstrInfo &TII) {
344
343
case AMDGPU::S_BUFFER_LOAD_DWORD_IMM:
345
344
case AMDGPU::S_BUFFER_LOAD_DWORD_SGPR_IMM:
346
345
case AMDGPU::S_LOAD_DWORD_IMM:
347
- case AMDGPU::S_LOAD_DWORD_IMM_ec:
348
346
case AMDGPU::GLOBAL_LOAD_DWORD:
349
347
case AMDGPU::GLOBAL_LOAD_DWORD_SADDR:
350
348
case AMDGPU::GLOBAL_STORE_DWORD:
@@ -513,7 +511,6 @@ static InstClassEnum getInstClass(unsigned Opc, const SIInstrInfo &TII) {
513
511
case AMDGPU::S_LOAD_DWORDX3_IMM:
514
512
case AMDGPU::S_LOAD_DWORDX4_IMM:
515
513
case AMDGPU::S_LOAD_DWORDX8_IMM:
516
- case AMDGPU::S_LOAD_DWORD_IMM_ec:
517
514
case AMDGPU::S_LOAD_DWORDX2_IMM_ec:
518
515
case AMDGPU::S_LOAD_DWORDX3_IMM_ec:
519
516
case AMDGPU::S_LOAD_DWORDX4_IMM_ec:
@@ -602,7 +599,6 @@ static unsigned getInstSubclass(unsigned Opc, const SIInstrInfo &TII) {
602
599
case AMDGPU::S_LOAD_DWORDX3_IMM:
603
600
case AMDGPU::S_LOAD_DWORDX4_IMM:
604
601
case AMDGPU::S_LOAD_DWORDX8_IMM:
605
- case AMDGPU::S_LOAD_DWORD_IMM_ec:
606
602
case AMDGPU::S_LOAD_DWORDX2_IMM_ec:
607
603
case AMDGPU::S_LOAD_DWORDX3_IMM_ec:
608
604
case AMDGPU::S_LOAD_DWORDX4_IMM_ec:
@@ -719,7 +715,6 @@ static AddressRegs getRegs(unsigned Opc, const SIInstrInfo &TII) {
719
715
case AMDGPU::S_LOAD_DWORDX3_IMM:
720
716
case AMDGPU::S_LOAD_DWORDX4_IMM:
721
717
case AMDGPU::S_LOAD_DWORDX8_IMM:
722
- case AMDGPU::S_LOAD_DWORD_IMM_ec:
723
718
case AMDGPU::S_LOAD_DWORDX2_IMM_ec:
724
719
case AMDGPU::S_LOAD_DWORDX3_IMM_ec:
725
720
case AMDGPU::S_LOAD_DWORDX4_IMM_ec:
@@ -1476,7 +1471,7 @@ MachineBasicBlock::iterator SILoadStoreOptimizer::mergeSMemLoadImmPair(
1476
1471
MachineBasicBlock::iterator InsertBefore) {
1477
1472
MachineBasicBlock *MBB = CI.I ->getParent ();
1478
1473
DebugLoc DL = CI.I ->getDebugLoc ();
1479
- const unsigned Opcode = getNewOpcode (CI, Paired, STM );
1474
+ const unsigned Opcode = getNewOpcode (CI, Paired);
1480
1475
1481
1476
const TargetRegisterClass *SuperRC = getTargetRegisterClass (CI, Paired);
1482
1477
@@ -1688,8 +1683,7 @@ MachineBasicBlock::iterator SILoadStoreOptimizer::mergeFlatStorePair(
1688
1683
}
1689
1684
1690
1685
unsigned SILoadStoreOptimizer::getNewOpcode (const CombineInfo &CI,
1691
- const CombineInfo &Paired,
1692
- const GCNSubtarget *STI) {
1686
+ const CombineInfo &Paired) {
1693
1687
const unsigned Width = CI.Width + Paired.Width ;
1694
1688
1695
1689
switch (getCommonInstClass (CI, Paired)) {
@@ -1732,8 +1726,9 @@ unsigned SILoadStoreOptimizer::getNewOpcode(const CombineInfo &CI,
1732
1726
return AMDGPU::S_BUFFER_LOAD_DWORDX8_SGPR_IMM;
1733
1727
}
1734
1728
case S_LOAD_IMM:
1735
- // For targets that support XNACK replay, use the constrained load opcode.
1736
- if (STI && STI->hasXnackReplay ()) {
1729
+ // Use the constrained opcodes when the subtarget has the XNACK support
1730
+ // enabled.
1731
+ if (STM->isXNACKEnabled ()) {
1737
1732
switch (Width) {
1738
1733
default :
1739
1734
return 0 ;
0 commit comments