https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114729
--- Comment #11 from Jeffrey A. Law <law at gcc dot gnu.org> --- Yup. -fsched-verbose=99 is *very* verbose. But that's the point, to see all the gory details. It can be dialed down, but I've never done so myself. What stands out to me is this: ;; | Pressure costs for ready queue ;; | pressure points GR_REGS:[29->29 at 0:94] FP_REGS:[1->1 at 0:94] I haven't had to debug pressure stuff, so I'm not as familiar with its dump format. But I'd hazard a guess the "29->29" means the insn is neutral WRT register pressure with the estimate being we need 29 GPRs before/after this insn. If we think about our GPR file, at 29 we're likely already spilling. 32 - (sp, fp, ra, x0, gp, perhaps tp as well). So maybe that points at the first two thing to verify. 1. What does the "29" actually mean. I'm guessing it means the number of GPRs estimated live at this point. But we should make sure. 2. How does the heuristic determine when to start applying pressure sensitivity? Presumably it's based on the number of registers in a particular class. But given we can't allocate sp, ra, x0, fp, gp, are we properly accounting for those limitations?