[PATCH] D70821: [SystemZ]  Implement the packed stack layout
    Jonas Paulsson via Phabricator via llvm-commits 
    llvm-commits at lists.llvm.org
       
    Sat Dec  7 10:38:36 PST 2019
    
    
  
jonpa added inline comments.
================
Comment at: llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp:51
+                          0, Align(8), false /* StackRealignable */),
+      RegSpillOffsets(0) {
   // Due to the SystemZ ABI, the DWARF CFA (Canonical Frame Address) is not
----------------
uweigand wrote:
> Why is the RegSpillOffsets change above needed?
I'm not sure this is needed, but since I am using this table also with CSRs that are not in it, I wanted to make sure that zero is returned in those cases.
IIUC, nullVal_ will by this be initialized to 0, which will then be the initial value of all the elements. Perhaps this is redundant with a default constructor for unsigned?
================
Comment at: llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp:81
+    unsigned Reg = CS.getReg();
+    int Offset = RegSpillOffsets[Reg];
+    if (Offset) {
----------------
uweigand wrote:
> The RegSpillOffsets value is only ever valid for the non-packed case, so I think everything would be clearer if you only looked at it in that case.
OK - I suppose that if a table isn't needed, then the register numbers themselves can be used to determine the LowGPR and the offsets...?
CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D70821/new/
https://reviews.llvm.org/D70821
    
    
More information about the llvm-commits
mailing list