Why does IRA force all pseudos live across a setjmp call to be spilled?
Eric Botcazou
ebotcazou@adacore.com
Mon Mar 5 07:01:00 GMT 2018
> C11 says in 7.13.2.1/2
> "The longjmp function restores the environment saved by the most recent
> invocation of the setjmp macro in the same invocation of the program with
> the corresponding jmp_buf argument."
> where "environment" is not really defined, but it includes all information
> a program will need to return to its caller (so it has to restore the
> non-volatile registers, set stack pointers correctly, that kind of thing).
Apparently the authors of the SPARC psABI thought that the last part of your
sentence is an interpolation and that the (historical) requirements were vague
enough to allow their interpretation, IOW that the compiler can do the work.
--
Eric Botcazou
More information about the Gcc
mailing list