shiva0217 added inline comments.

================
Comment at: llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:289
   unsigned CFIIndex = MF.addFrameInst(
       MCCFIInstruction::createDefCfaOffset(nullptr, -StackSize));
   BuildMI(MBB, MBBI, DL, TII->get(TargetOpcode::CFI_INSTRUCTION))
----------------
Should the -StackSize be -RealStackSize?


================
Comment at: llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:667
+        .addExternalSymbol(SpillLibCall, RISCVII::MO_CALL)
+        .setMIFlag(MachineInstr::FrameSetup);
+
----------------
There is a case may trigger an assertion when compile with -O3 -g 
-msave-restore if the libcall has FrameSetup flag.
  int main(int a, char* argv[]) {
    exit(0);
    return 0;
  }


================
Comment at: llvm/lib/Target/RISCV/RISCVFrameLowering.cpp:668
+        .setMIFlag(MachineInstr::FrameSetup);
+
+    // Add registers spilled in libcall as liveins.
----------------
GCC will generate stack adjustment and GPR callee saved CFIs for the save 
libcalls. Should we do the same?


================
Comment at: llvm/lib/Target/RISCV/RISCVRegisterInfo.h:40
 
+  bool hasReservedSpillSlot(const MachineFunction &MF, unsigned Reg,
+                            int &FrameIdx) const override;
----------------
An alternative of defining hasReservedSpillSlot could be set SaveRegs for the 
registers will be pushed by the libcalls in determineCalleeSaves. So the 
StackSize calculation will take the callee saved registers will be pushed by 
the libcalls into account.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D62686



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to