https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65167

--- Comment #1 from Ilya Enkovich <enkovich.gnu at gmail dot com> ---
For call arguments we usually store bounds passed in bounds tables and then
fill bounds passed in registers.  But with -fschedule-insns we have order
changed and all hard registers are filled with values before BNDSTX.  This is
not a nice schedule because it requires additional spills.  Seems LRA fails to
spill a register when all of them are used to pass args.  This situation didn't
happen before because bounds registers is the first case when we use all
registers to pass args. Should LRA be able to spill/fill initialized hard reg?
Can it be fixed or we better avoid such scheduling?

Reply via email to