[PATCH] D139412: [AMDGPU] Change handling of s_endpgm's optional operand. NFC.
Jay Foad via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 6 06:41:15 PST 2022
foad added inline comments.
================
Comment at: llvm/lib/Target/AMDGPU/SOPInstructions.td:1942
-multiclass SOPP_Real_32_gfx11<bits<7> op, string real_name = !cast<SOPP_Pseudo>(NAME).Mnemonic # " "> {
- def _gfx11 : SOPP_Real_32<op, !cast<SOPP_Pseudo>(NAME), real_name>,
+multiclass SOPP_Real_32_gfx11<bits<7> op> {
+ def _gfx11 : SOPP_Real_32<op, !cast<SOPP_Pseudo>(NAME), !cast<SOPP_Pseudo>(NAME).Mnemonic>,
----------------
dp wrote:
> foad wrote:
> > @dp what do you think of this patch? Personally I like it because it simplifies all these SOPP_Real multiclasses, by removing all the machinery for passing around and overriding real_name. But I am open to other opinions.
> Your patch is definitely an improvement.
>
> After looking at the original code I noticed that SOP opcodes without operands have a space after mnemonic. I only checked `s_endpgm_saved` and `s_set_gpr_idx_off` but it looks like other opcodes w/o operands have a similar issue. Your patch seems to address this issue though it is not mentioned in the description.
>
> Most definitions use `SOPP_Pseudo` with an operand starting from a space. Shouldn't `SOPP_Pseudo` add a space automatically? This looks feasible; `endpgm` case may be handled by a subclass of `SOPP_Pseudo`.
I only checked endpgm because there is a special strict-whitespace test for it: `test/MC/AMDGPU/s_endpgm.s`
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D139412/new/
https://reviews.llvm.org/D139412
More information about the llvm-commits
mailing list