================ @@ -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