[PATCH] D157373: [RISCV] add a compress optimization for stack inst.

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Aug 12 10:40:36 PDT 2023


craig.topper added inline comments.


================
Comment at: llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:1315
+      // riscv32: c.lwsp rd, offset[7:2] => 2^(6+2)
+      const uint64_t RV32CompressLen = 256;
+      // riscv64: c.lwsp rd, offset[8:3] => 2^(6+3)
----------------
Can we compute CompressLen for both RV32 and RV64 as XLen * 8? And then merge the 2 if statements?


================
Comment at: llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:1316
+      const uint64_t RV32CompressLen = 256;
+      // riscv64: c.lwsp rd, offset[8:3] => 2^(6+3)
+      const uint64_t RV64CompressLen = 512;
----------------
c.ldsp?


================
Comment at: llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:1321
+                                  StackSize > 2048 * 3 - StackAlign))
+        FirstSPAmount = 256;
+      else if (STI.getXLen() == 64 && (StackSize <= RV64CompressLen + 2048 ||
----------------
return 256


================
Comment at: llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:1324
+                                       StackSize > 2048 * 3 - StackAlign))
+        FirstSPAmount = 512;
+    }
----------------
return 512


================
Comment at: llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:1326
+    }
+    return FirstSPAmount;
   }
----------------
return 2048 - StackAlign


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D157373/new/

https://reviews.llvm.org/D157373



More information about the llvm-commits mailing list