[PATCH] D93750: [RISCV] Frame handling for RISC-V V extension.

Jessica Clarke via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 23 06:23:17 PST 2020


jrtc27 added inline comments.


================
Comment at: llvm/include/llvm/CodeGen/MachineFrameInfo.h:226
+  /// vector objects have been allocated yet.
+  bool HasScalableVectorObjects = false;
+
----------------
How come SVE doesn't need this already?


================
Comment at: llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:280
+  // We do not want the generic alignment handling in
+  // PEI::calculateFrameObjectOffsets(). We store the pointers of RVV objects
+  // in the frame, instead of storing RVV objects themselves. That is why we
----------------
Hm, looking at the stack-realignment.ll diff, were we double-counting before? If so it'd be worth splitting out that bit of this revision into its own smaller one.


================
Comment at: llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:496
     Register Reg = Entry.getReg();
+    // We don't have sensible DWARF for VRs yet
+    if (RISCV::VRRegClass.contains(Reg))
----------------
:( is there progress being made to specify it?


================
Comment at: llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td:249
   bit HasDummyMask = 0;
+  bit IsRVVLoadStore = 0;
 }
----------------
Can you not just do `isa<>` to check it's the right class and then look at mayLoad/mayStore?


================
Comment at: llvm/test/CodeGen/RISCV/rvv/allocate-lmul-2-4-8.ll:5
+
+define void @lmul1() nounwind optnone noinline {
+; CHECK-LABEL: lmul1:
----------------
Only nounwind is needed for these I believe?


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D93750



More information about the llvm-commits mailing list