diff options
author | Vladimir N. Makarov <vmakarov@redhat.com> | 2023-07-19 09:35:37 -0400 |
---|---|---|
committer | Vladimir N. Makarov <vmakarov@redhat.com> | 2023-07-19 13:53:29 -0400 |
commit | 2971ff7b1d564ac04b537d907c70e6093af70832 (patch) | |
tree | c5dcc85ed023eb4deb25eeacc2663779c484c540 /libgcc | |
parent | 029c7ebe7f4f9ea37d715dbc2da36687d8657c2c (diff) | |
download | gcc-2971ff7b1d564ac04b537d907c70e6093af70832.zip gcc-2971ff7b1d564ac04b537d907c70e6093af70832.tar.gz gcc-2971ff7b1d564ac04b537d907c70e6093af70832.tar.bz2 |
[LRA]: Check and update frame to stack pointer elimination after stack slot allocation
Avr is an interesting target which does not use stack pointer to
address stack slots. The elimination of stack pointer to frame pointer
is impossible if there are stack slots. During LRA works, the
stack slots can be allocated and used and the elimination can be done
anymore. The situation can be complicated even more if some pseudos
were allocated to the frame pointer.
gcc/ChangeLog:
* lra-int.h (lra_update_fp2sp_elimination): New prototype.
(lra_asm_insn_error): New prototype.
* lra-spills.cc (remove_pseudos): Add check for pseudo slot memory
existence.
(lra_spill): Call lra_update_fp2sp_elimination.
* lra-eliminations.cc: Remove trailing spaces.
(elimination_fp2sp_occured_p): New static flag.
(lra_eliminate_regs_1): Set the flag up.
(update_reg_eliminate): Modify the assert for stack to frame
pointer elimination.
(lra_update_fp2sp_elimination): New function.
(lra_eliminate): Clear flag elimination_fp2sp_occured_p.
gcc/testsuite/ChangeLog:
* gcc.target/avr/lra-elim.c: New test.
Diffstat (limited to 'libgcc')
0 files changed, 0 insertions, 0 deletions