[Bug rtl-optimization/87466] New: IRA and LRA spill all pseudos that are live across setjmp calls

bergner at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sat Sep 29 02:27:00 GMT 2018


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

            Bug ID: 87466
           Summary: IRA and LRA spill all pseudos that are live across
                    setjmp calls
           Product: gcc
           Version: 9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: rtl-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: bergner at gcc dot gnu.org
  Target Milestone: ---

Currently, both IRA and LRA spill all pseudo regs that are live across a setjmp
call.  If the target has a sane setjmp, then the compiler should not have to
treat the setjmp call any different to any other normal function call, namely,
just mark all pseudos that are live across the setjmp as conflicting with the
volatile registers.

This issue was discussed in the following gcc mailing list thread:

  https://gcc.gnu.org/ml/gcc/2018-03/msg00014.html

Some people mentioned that some systems do not have sane setjmp implementations
and so need the spill all pseudos to get correct functionality.  It was decided
that a target hook should be created that can allow targets to tell IRA and LRA
whether they have a sane setjmp implementation or not.  This bugzilla entry is
being used to track that work.


More information about the Gcc-bugs mailing list