[PATCH] D157472: [RISCV][NFC] Fix rlist grammar in RISCV zcmp Extension

Kiva via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 8 22:00:58 PDT 2023


imkiva created this revision.
imkiva added a reviewer: craig.topper.
imkiva added a project: LLVM.
Herald added subscribers: jobnoorman, luke, VincentWu, vkmr, frasercrmck, luismarques, apazos, sameer.abuasal, s.egerton, Jim, benna, psnobl, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, rogfer01, edward-jones, zzheng, jrtc27, shiva0217, kito-cheng, niosHD, sabuasal, simoncook, johnrusso, rbar, asb, hiraditya, kristof.beyls, arichardson.
Herald added a project: All.
imkiva requested review of this revision.
Herald added subscribers: llvm-commits, wangpc, eopXD, MaskRay.

The register list in the arg string is declared as `{$rlist}`. This patch removes the wrapping curly brackets because of the following:

- Curly brackets are the syntax for variant selection, e.g. given `X = {v0 | v1}`, the result after `CodeGenInstruction::FlattenAsmStringVariants` should be `X[AsmVariantNo]`.
- ARM also supports the register list, and they do not use the bracket wrapper.

So the curly brackets here are redundant and will become dangerous if RISCV needs more asm parser variants.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D157472

Files:
  llvm/lib/Target/RISCV/RISCVInstrInfoZc.td


Index: llvm/lib/Target/RISCV/RISCVInstrInfoZc.td
===================================================================
--- llvm/lib/Target/RISCV/RISCVInstrInfoZc.td
+++ llvm/lib/Target/RISCV/RISCVInstrInfoZc.td
@@ -191,7 +191,7 @@
 let DecoderNamespace = "RVZcmp", Predicates = [HasStdExtZcmp] in {
 let hasSideEffects = 0, mayLoad = 0, mayStore = 1 in 
 def CM_PUSH : RVInstZcCPPP<(outs), (ins rlist:$rlist, spimm:$spimm), 
-    "cm.push", "{$rlist}, $spimm"> {
+    "cm.push", "$rlist, $spimm"> {
   bits<4> rlist;
   bits<16> spimm;
 
@@ -202,7 +202,7 @@
 
 let hasSideEffects = 0, mayLoad = 1, mayStore = 0 in 
 def CM_POPRET : RVInstZcCPPP<(outs), (ins rlist:$rlist, spimm:$spimm), 
-    "cm.popret", "{$rlist}, $spimm"> {
+    "cm.popret", "$rlist, $spimm"> {
   bits<4> rlist;
   bits<16> spimm;
 
@@ -213,7 +213,7 @@
 
 let hasSideEffects = 0, mayLoad = 1, mayStore = 0 in 
 def CM_POPRETZ : RVInstZcCPPP<(outs), (ins rlist:$rlist, spimm:$spimm), 
-    "cm.popretz", "{$rlist}, $spimm"> {
+    "cm.popretz", "$rlist, $spimm"> {
   bits<4> rlist;
   bits<16> spimm;
 
@@ -223,8 +223,8 @@
 }
 
 let hasSideEffects = 0, mayLoad = 1, mayStore = 0 in 
-def CM_POP : RVInstZcCPPP<(outs), (ins rlist:$rlist, spimm:$spimm), 
-    "cm.pop", "{$rlist}, $spimm"> {
+def CM_POP : RVInstZcCPPP<(outs), (ins rlist:$rlist, spimm:$spimm),
+    "cm.pop", "$rlist, $spimm"> {
   bits<4> rlist;
   bits<16> spimm;
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D157472.548458.patch
Type: text/x-patch
Size: 1403 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20230809/7b299a76/attachment.bin>


More information about the llvm-commits mailing list