Skip to content

Commit a1de9ac

Browse files
authored
AMDGPU: Remove tablegen bz30254 workarounds from BUF instructions (#157054)
1 parent 45af938 commit a1de9ac

File tree

1 file changed

+37
-56
lines changed

1 file changed

+37
-56
lines changed

llvm/lib/Target/AMDGPU/BUFInstructions.td

Lines changed: 37 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -219,16 +219,14 @@ class MTBUF_Load_Pseudo <string opName,
219219
RegisterOperand vdataClass,
220220
int elems,
221221
bit hasRestrictedSOffset = 0,
222-
list<dag> pattern=[],
223-
// Workaround bug bz30254
224-
int addrKindCopy = addrKind>
222+
list<dag> pattern=[]>
225223
: MTBUF_Pseudo<opName,
226224
(outs vdataClass:$vdata),
227-
getMTBUFIns<addrKindCopy, [], hasRestrictedSOffset>.ret,
228-
getMTBUFAsmOps<addrKindCopy>.ret,
225+
getMTBUFIns<addrKind, [], hasRestrictedSOffset>.ret,
226+
getMTBUFAsmOps<addrKind>.ret,
229227
pattern>,
230-
MTBUF_SetupAddr<addrKindCopy> {
231-
let PseudoInstr = opName # "_" # getAddrName<addrKindCopy>.ret;
228+
MTBUF_SetupAddr<addrKind> {
229+
let PseudoInstr = opName # "_" # getAddrName<addrKind>.ret;
232230
let mayLoad = 1;
233231
let mayStore = 0;
234232
let elements = elems;
@@ -266,17 +264,14 @@ class MTBUF_Store_Pseudo <string opName,
266264
RegisterOperand vdataClass,
267265
int elems,
268266
bit hasRestrictedSOffset = 0,
269-
list<dag> pattern=[],
270-
// Workaround bug bz30254
271-
int addrKindCopy = addrKind,
272-
RegisterOperand vdataClassCopy = vdataClass>
267+
list<dag> pattern=[]>
273268
: MTBUF_Pseudo<opName,
274269
(outs),
275-
getMTBUFIns<addrKindCopy, [vdataClassCopy], hasRestrictedSOffset>.ret,
276-
getMTBUFAsmOps<addrKindCopy>.ret,
270+
getMTBUFIns<addrKind, [vdataClass], hasRestrictedSOffset>.ret,
271+
getMTBUFAsmOps<addrKind>.ret,
277272
pattern>,
278-
MTBUF_SetupAddr<addrKindCopy> {
279-
let PseudoInstr = opName # "_" # getAddrName<addrKindCopy>.ret;
273+
MTBUF_SetupAddr<addrKind> {
274+
let PseudoInstr = opName # "_" # getAddrName<addrKind>.ret;
280275
let mayLoad = 0;
281276
let mayStore = 1;
282277
let elements = elems;
@@ -492,18 +487,16 @@ class MUBUF_Load_Pseudo <string opName,
492487
bit isTFE = 0,
493488
bit hasRestrictedSOffset = 0,
494489
list<dag> pattern=[],
495-
// Workaround bug bz30254
496-
int addrKindCopy = addrKind,
497490
RegisterOperand vdata_op = getLdStVDataRegisterOperand<vdata_vt.Size, isTFE>.ret>
498491
: MUBUF_Pseudo<opName,
499492
!if(!or(isLds, isLdsOpc), (outs), (outs vdata_op:$vdata)),
500-
!con(getMUBUFIns<addrKindCopy, [], isTFE, hasRestrictedSOffset>.ret,
493+
!con(getMUBUFIns<addrKind, [], isTFE, hasRestrictedSOffset>.ret,
501494
!if(HasTiedDest, (ins vdata_op:$vdata_in), (ins))),
502-
getMUBUFAsmOps<addrKindCopy, !or(isLds, isLdsOpc), isLds, isTFE>.ret,
495+
getMUBUFAsmOps<addrKind, !or(isLds, isLdsOpc), isLds, isTFE>.ret,
503496
pattern>,
504-
MUBUF_SetupAddr<addrKindCopy> {
497+
MUBUF_SetupAddr<addrKind> {
505498
let PseudoInstr = opName # !if(isLds, "_lds", "") # !if(isTFE, "_tfe", "") #
506-
"_" # getAddrName<addrKindCopy>.ret;
499+
"_" # getAddrName<addrKind>.ret;
507500
let AsmMatchConverter = "cvtMubuf";
508501

509502
let Constraints = !if(HasTiedDest, "$vdata = $vdata_in", "");
@@ -593,17 +586,15 @@ class MUBUF_Store_Pseudo <string opName,
593586
ValueType store_vt,
594587
bit isTFE = 0,
595588
bit hasRestrictedSOffset = 0,
596-
list<dag> pattern=[],
597-
// Workaround bug bz30254
598-
int addrKindCopy = addrKind>
589+
list<dag> pattern=[]>
599590
: MUBUF_Pseudo<opName,
600591
(outs),
601-
getMUBUFIns<addrKindCopy, [getVregSrcForVT<store_vt>.ret], isTFE, hasRestrictedSOffset>.ret,
602-
getMUBUFAsmOps<addrKindCopy, 0, 0, isTFE>.ret,
592+
getMUBUFIns<addrKind, [getVregSrcForVT<store_vt>.ret], isTFE, hasRestrictedSOffset>.ret,
593+
getMUBUFAsmOps<addrKind, 0, 0, isTFE>.ret,
603594
pattern>,
604-
MUBUF_SetupAddr<addrKindCopy> {
595+
MUBUF_SetupAddr<addrKind> {
605596
let PseudoInstr = opName # "_" # !if(isTFE, "_tfe", "") #
606-
getAddrName<addrKindCopy>.ret;
597+
getAddrName<addrKind>.ret;
607598
let mayLoad = 0;
608599
let mayStore = 1;
609600
let elements = getMUBUFElements<store_vt>.ret;
@@ -693,20 +684,18 @@ class getMUBUFAtomicInsDA<RegisterOperand vdata_op, bit vdata_in, bit hasRestric
693684
class getMUBUFAtomicIns<int addrKind,
694685
RegisterOperand vdataClass,
695686
bit vdata_in,
696-
bit hasRestrictedSOffset,
697-
// Workaround bug bz30254
698-
RegisterOperand vdataClassCopy=vdataClass> {
687+
bit hasRestrictedSOffset> {
699688
dag ret =
700689
!if(!eq(addrKind, BUFAddrKind.Offset),
701-
getMUBUFAtomicInsDA<vdataClassCopy, vdata_in, hasRestrictedSOffset>.ret,
690+
getMUBUFAtomicInsDA<vdataClass, vdata_in, hasRestrictedSOffset>.ret,
702691
!if(!eq(addrKind, BUFAddrKind.OffEn),
703-
getMUBUFAtomicInsDA<vdataClassCopy, vdata_in, hasRestrictedSOffset, [VGPR_32]>.ret,
692+
getMUBUFAtomicInsDA<vdataClass, vdata_in, hasRestrictedSOffset, [VGPR_32]>.ret,
704693
!if(!eq(addrKind, BUFAddrKind.IdxEn),
705-
getMUBUFAtomicInsDA<vdataClassCopy, vdata_in, hasRestrictedSOffset, [VGPR_32]>.ret,
694+
getMUBUFAtomicInsDA<vdataClass, vdata_in, hasRestrictedSOffset, [VGPR_32]>.ret,
706695
!if(!eq(addrKind, BUFAddrKind.BothEn),
707-
getMUBUFAtomicInsDA<vdataClassCopy, vdata_in, hasRestrictedSOffset, [VReg_64]>.ret,
696+
getMUBUFAtomicInsDA<vdataClass, vdata_in, hasRestrictedSOffset, [VReg_64]>.ret,
708697
!if(!eq(addrKind, BUFAddrKind.Addr64),
709-
getMUBUFAtomicInsDA<vdataClassCopy, vdata_in, hasRestrictedSOffset, [VReg_64]>.ret,
698+
getMUBUFAtomicInsDA<vdataClass, vdata_in, hasRestrictedSOffset, [VReg_64]>.ret,
710699
(ins))))));
711700
}
712701

@@ -715,11 +704,9 @@ class MUBUF_Atomic_Pseudo<string opName,
715704
dag outs,
716705
dag ins,
717706
string asmOps,
718-
list<dag> pattern=[],
719-
// Workaround bug bz30254
720-
int addrKindCopy = addrKind>
707+
list<dag> pattern=[]>
721708
: MUBUF_Pseudo<opName, outs, ins, asmOps, pattern>,
722-
MUBUF_SetupAddr<addrKindCopy> {
709+
MUBUF_SetupAddr<addrKind> {
723710
let mayStore = 1;
724711
let mayLoad = 1;
725712
let hasSideEffects = 1;
@@ -733,16 +720,13 @@ class MUBUF_Atomic_Pseudo<string opName,
733720
class MUBUF_AtomicNoRet_Pseudo<string opName, int addrKind,
734721
RegisterOperand vdataClass,
735722
bit hasRestrictedSOffset = 0,
736-
list<dag> pattern=[],
737-
// Workaround bug bz30254
738-
int addrKindCopy = addrKind,
739-
RegisterOperand vdataClassCopy = vdataClass>
740-
: MUBUF_Atomic_Pseudo<opName, addrKindCopy,
723+
list<dag> pattern=[]>
724+
: MUBUF_Atomic_Pseudo<opName, addrKind,
741725
(outs),
742-
getMUBUFAtomicIns<addrKindCopy, vdataClassCopy, 0, hasRestrictedSOffset>.ret,
743-
getMUBUFAsmOps<addrKindCopy>.ret,
726+
getMUBUFAtomicIns<addrKind, vdataClass, 0, hasRestrictedSOffset>.ret,
727+
getMUBUFAsmOps<addrKind>.ret,
744728
pattern> {
745-
let PseudoInstr = opName # "_" # getAddrName<addrKindCopy>.ret;
729+
let PseudoInstr = opName # "_" # getAddrName<addrKind>.ret;
746730
let glc_value = 0;
747731
let dlc_value = 0;
748732
let sccb_value = 0;
@@ -752,16 +736,13 @@ class MUBUF_AtomicNoRet_Pseudo<string opName, int addrKind,
752736
class MUBUF_AtomicRet_Pseudo<string opName, int addrKind,
753737
RegisterOperand vdata_op,
754738
bit hasRestrictedSOffset = 0,
755-
list<dag> pattern=[],
756-
// Workaround bug bz30254
757-
int addrKindCopy = addrKind,
758-
RegisterOperand vdataClassCopy = vdata_op>
759-
: MUBUF_Atomic_Pseudo<opName, addrKindCopy,
739+
list<dag> pattern=[]>
740+
: MUBUF_Atomic_Pseudo<opName, addrKind,
760741
(outs vdata_op:$vdata),
761-
getMUBUFAtomicIns<addrKindCopy, vdataClassCopy, 1, hasRestrictedSOffset>.ret,
762-
getMUBUFAsmOps<addrKindCopy>.ret,
742+
getMUBUFAtomicIns<addrKind, vdata_op, 1, hasRestrictedSOffset>.ret,
743+
getMUBUFAsmOps<addrKind>.ret,
763744
pattern> {
764-
let PseudoInstr = opName # "_rtn_" # getAddrName<addrKindCopy>.ret;
745+
let PseudoInstr = opName # "_rtn_" # getAddrName<addrKind>.ret;
765746
let glc_value = 1;
766747
let dlc_value = 0;
767748
let sccb_value = 0;

0 commit comments

Comments
 (0)