-
Notifications
You must be signed in to change notification settings - Fork 15k
AMDGPU: Remove tablegen bz30254 workarounds from BUF instructions #157054
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AMDGPU: Remove tablegen bz30254 workarounds from BUF instructions #157054
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
@llvm/pr-subscribers-backend-amdgpu Author: Matt Arsenault (arsenm) ChangesFull diff: https://github.com/llvm/llvm-project/pull/157054.diff 1 Files Affected:
diff --git a/llvm/lib/Target/AMDGPU/BUFInstructions.td b/llvm/lib/Target/AMDGPU/BUFInstructions.td
index 8e3c3294ec713..b42f4a155a1b7 100644
--- a/llvm/lib/Target/AMDGPU/BUFInstructions.td
+++ b/llvm/lib/Target/AMDGPU/BUFInstructions.td
@@ -219,16 +219,14 @@ class MTBUF_Load_Pseudo <string opName,
RegisterOperand vdataClass,
int elems,
bit hasRestrictedSOffset = 0,
- list<dag> pattern=[],
- // Workaround bug bz30254
- int addrKindCopy = addrKind>
+ list<dag> pattern=[]>
: MTBUF_Pseudo<opName,
(outs vdataClass:$vdata),
- getMTBUFIns<addrKindCopy, [], hasRestrictedSOffset>.ret,
- getMTBUFAsmOps<addrKindCopy>.ret,
+ getMTBUFIns<addrKind, [], hasRestrictedSOffset>.ret,
+ getMTBUFAsmOps<addrKind>.ret,
pattern>,
- MTBUF_SetupAddr<addrKindCopy> {
- let PseudoInstr = opName # "_" # getAddrName<addrKindCopy>.ret;
+ MTBUF_SetupAddr<addrKind> {
+ let PseudoInstr = opName # "_" # getAddrName<addrKind>.ret;
let mayLoad = 1;
let mayStore = 0;
let elements = elems;
@@ -266,17 +264,14 @@ class MTBUF_Store_Pseudo <string opName,
RegisterOperand vdataClass,
int elems,
bit hasRestrictedSOffset = 0,
- list<dag> pattern=[],
- // Workaround bug bz30254
- int addrKindCopy = addrKind,
- RegisterOperand vdataClassCopy = vdataClass>
+ list<dag> pattern=[]>
: MTBUF_Pseudo<opName,
(outs),
- getMTBUFIns<addrKindCopy, [vdataClassCopy], hasRestrictedSOffset>.ret,
- getMTBUFAsmOps<addrKindCopy>.ret,
+ getMTBUFIns<addrKind, [vdataClass], hasRestrictedSOffset>.ret,
+ getMTBUFAsmOps<addrKind>.ret,
pattern>,
- MTBUF_SetupAddr<addrKindCopy> {
- let PseudoInstr = opName # "_" # getAddrName<addrKindCopy>.ret;
+ MTBUF_SetupAddr<addrKind> {
+ let PseudoInstr = opName # "_" # getAddrName<addrKind>.ret;
let mayLoad = 0;
let mayStore = 1;
let elements = elems;
@@ -492,18 +487,16 @@ class MUBUF_Load_Pseudo <string opName,
bit isTFE = 0,
bit hasRestrictedSOffset = 0,
list<dag> pattern=[],
- // Workaround bug bz30254
- int addrKindCopy = addrKind,
RegisterOperand vdata_op = getLdStVDataRegisterOperand<vdata_vt.Size, isTFE>.ret>
: MUBUF_Pseudo<opName,
!if(!or(isLds, isLdsOpc), (outs), (outs vdata_op:$vdata)),
- !con(getMUBUFIns<addrKindCopy, [], isTFE, hasRestrictedSOffset>.ret,
+ !con(getMUBUFIns<addrKind, [], isTFE, hasRestrictedSOffset>.ret,
!if(HasTiedDest, (ins vdata_op:$vdata_in), (ins))),
- getMUBUFAsmOps<addrKindCopy, !or(isLds, isLdsOpc), isLds, isTFE>.ret,
+ getMUBUFAsmOps<addrKind, !or(isLds, isLdsOpc), isLds, isTFE>.ret,
pattern>,
- MUBUF_SetupAddr<addrKindCopy> {
+ MUBUF_SetupAddr<addrKind> {
let PseudoInstr = opName # !if(isLds, "_lds", "") # !if(isTFE, "_tfe", "") #
- "_" # getAddrName<addrKindCopy>.ret;
+ "_" # getAddrName<addrKind>.ret;
let AsmMatchConverter = "cvtMubuf";
let Constraints = !if(HasTiedDest, "$vdata = $vdata_in", "");
@@ -593,17 +586,15 @@ class MUBUF_Store_Pseudo <string opName,
ValueType store_vt,
bit isTFE = 0,
bit hasRestrictedSOffset = 0,
- list<dag> pattern=[],
- // Workaround bug bz30254
- int addrKindCopy = addrKind>
+ list<dag> pattern=[]>
: MUBUF_Pseudo<opName,
(outs),
- getMUBUFIns<addrKindCopy, [getVregSrcForVT<store_vt>.ret], isTFE, hasRestrictedSOffset>.ret,
- getMUBUFAsmOps<addrKindCopy, 0, 0, isTFE>.ret,
+ getMUBUFIns<addrKind, [getVregSrcForVT<store_vt>.ret], isTFE, hasRestrictedSOffset>.ret,
+ getMUBUFAsmOps<addrKind, 0, 0, isTFE>.ret,
pattern>,
- MUBUF_SetupAddr<addrKindCopy> {
+ MUBUF_SetupAddr<addrKind> {
let PseudoInstr = opName # "_" # !if(isTFE, "_tfe", "") #
- getAddrName<addrKindCopy>.ret;
+ getAddrName<addrKind>.ret;
let mayLoad = 0;
let mayStore = 1;
let elements = getMUBUFElements<store_vt>.ret;
@@ -693,20 +684,18 @@ class getMUBUFAtomicInsDA<RegisterOperand vdata_op, bit vdata_in, bit hasRestric
class getMUBUFAtomicIns<int addrKind,
RegisterOperand vdataClass,
bit vdata_in,
- bit hasRestrictedSOffset,
- // Workaround bug bz30254
- RegisterOperand vdataClassCopy=vdataClass> {
+ bit hasRestrictedSOffset> {
dag ret =
!if(!eq(addrKind, BUFAddrKind.Offset),
- getMUBUFAtomicInsDA<vdataClassCopy, vdata_in, hasRestrictedSOffset>.ret,
+ getMUBUFAtomicInsDA<vdataClass, vdata_in, hasRestrictedSOffset>.ret,
!if(!eq(addrKind, BUFAddrKind.OffEn),
- getMUBUFAtomicInsDA<vdataClassCopy, vdata_in, hasRestrictedSOffset, [VGPR_32]>.ret,
+ getMUBUFAtomicInsDA<vdataClass, vdata_in, hasRestrictedSOffset, [VGPR_32]>.ret,
!if(!eq(addrKind, BUFAddrKind.IdxEn),
- getMUBUFAtomicInsDA<vdataClassCopy, vdata_in, hasRestrictedSOffset, [VGPR_32]>.ret,
+ getMUBUFAtomicInsDA<vdataClass, vdata_in, hasRestrictedSOffset, [VGPR_32]>.ret,
!if(!eq(addrKind, BUFAddrKind.BothEn),
- getMUBUFAtomicInsDA<vdataClassCopy, vdata_in, hasRestrictedSOffset, [VReg_64]>.ret,
+ getMUBUFAtomicInsDA<vdataClass, vdata_in, hasRestrictedSOffset, [VReg_64]>.ret,
!if(!eq(addrKind, BUFAddrKind.Addr64),
- getMUBUFAtomicInsDA<vdataClassCopy, vdata_in, hasRestrictedSOffset, [VReg_64]>.ret,
+ getMUBUFAtomicInsDA<vdataClass, vdata_in, hasRestrictedSOffset, [VReg_64]>.ret,
(ins))))));
}
@@ -715,11 +704,9 @@ class MUBUF_Atomic_Pseudo<string opName,
dag outs,
dag ins,
string asmOps,
- list<dag> pattern=[],
- // Workaround bug bz30254
- int addrKindCopy = addrKind>
+ list<dag> pattern=[]>
: MUBUF_Pseudo<opName, outs, ins, asmOps, pattern>,
- MUBUF_SetupAddr<addrKindCopy> {
+ MUBUF_SetupAddr<addrKind> {
let mayStore = 1;
let mayLoad = 1;
let hasSideEffects = 1;
@@ -733,16 +720,13 @@ class MUBUF_Atomic_Pseudo<string opName,
class MUBUF_AtomicNoRet_Pseudo<string opName, int addrKind,
RegisterOperand vdataClass,
bit hasRestrictedSOffset = 0,
- list<dag> pattern=[],
- // Workaround bug bz30254
- int addrKindCopy = addrKind,
- RegisterOperand vdataClassCopy = vdataClass>
- : MUBUF_Atomic_Pseudo<opName, addrKindCopy,
+ list<dag> pattern=[]>
+ : MUBUF_Atomic_Pseudo<opName, addrKind,
(outs),
- getMUBUFAtomicIns<addrKindCopy, vdataClassCopy, 0, hasRestrictedSOffset>.ret,
- getMUBUFAsmOps<addrKindCopy>.ret,
+ getMUBUFAtomicIns<addrKind, vdataClass, 0, hasRestrictedSOffset>.ret,
+ getMUBUFAsmOps<addrKind>.ret,
pattern> {
- let PseudoInstr = opName # "_" # getAddrName<addrKindCopy>.ret;
+ let PseudoInstr = opName # "_" # getAddrName<addrKind>.ret;
let glc_value = 0;
let dlc_value = 0;
let sccb_value = 0;
@@ -752,16 +736,13 @@ class MUBUF_AtomicNoRet_Pseudo<string opName, int addrKind,
class MUBUF_AtomicRet_Pseudo<string opName, int addrKind,
RegisterOperand vdata_op,
bit hasRestrictedSOffset = 0,
- list<dag> pattern=[],
- // Workaround bug bz30254
- int addrKindCopy = addrKind,
- RegisterOperand vdataClassCopy = vdata_op>
- : MUBUF_Atomic_Pseudo<opName, addrKindCopy,
+ list<dag> pattern=[]>
+ : MUBUF_Atomic_Pseudo<opName, addrKind,
(outs vdata_op:$vdata),
- getMUBUFAtomicIns<addrKindCopy, vdataClassCopy, 1, hasRestrictedSOffset>.ret,
- getMUBUFAsmOps<addrKindCopy>.ret,
+ getMUBUFAtomicIns<addrKind, vdata_op, 1, hasRestrictedSOffset>.ret,
+ getMUBUFAsmOps<addrKind>.ret,
pattern> {
- let PseudoInstr = opName # "_rtn_" # getAddrName<addrKindCopy>.ret;
+ let PseudoInstr = opName # "_rtn_" # getAddrName<addrKind>.ret;
let glc_value = 1;
let dlc_value = 0;
let sccb_value = 0;
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is great if it works, but I am surprised. I didn't work when I tried a few months ago. And bz30254 (#29602) is still open.
6992c2a
to
94d14d0
Compare
No description provided.