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?

Reply via email to