================
@@ -1502,6 +1659,9 @@ void 
RISCVFrameLowering::determineCalleeSaves(MachineFunction &MF,
   auto *RVFI = MF.getInfo<RISCVMachineFunctionInfo>();
   if (RVFI->isPushable(MF) && SavedRegs.test(RISCV::X26))
     SavedRegs.set(RISCV::X27);
+
+  // SiFive Preemptible Interrupt Handlers need additional frame entries
+  createSiFivePreemptibleInterruptFrameEntries(MF, *RVFI);
----------------
lenary wrote:

I'm not entirely sure. Those two are used to work out which are conventional 
callee-saves when sorting the frame objects. If I include the two additional 
frame objects, it entirely reorders the callee-saves on the stack, which might 
be ok, but it's hard to tell. The two variables are also used in 
`computeFreeStackSlots`, which is what enabled #125959 - so it's probably best 
that we mark these as live as the other callee-saved frame objects.

https://github.com/llvm/llvm-project/pull/132481
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to