diff options
author | Vladimir N. Makarov <vmakarov@redhat.com> | 2023-08-14 16:06:27 -0400 |
---|---|---|
committer | Vladimir N. Makarov <vmakarov@redhat.com> | 2023-08-14 16:14:22 -0400 |
commit | 882ee2ca4d313ebeb40aee53186beb670e1f4573 (patch) | |
tree | 6ca6278def5cb54ed900264daabaaa3a7cf9a1b1 | |
parent | 3d2893989ade725c051a434bc6ea7b4d00764cbe (diff) | |
download | gcc-882ee2ca4d313ebeb40aee53186beb670e1f4573.zip gcc-882ee2ca4d313ebeb40aee53186beb670e1f4573.tar.gz gcc-882ee2ca4d313ebeb40aee53186beb670e1f4573.tar.bz2 |
[LRA]: Process output stack pointer reloads before emitting reload insns
Previous patch setting up asserts for processing stack pointer reloads
caught an error in code moving sp offset. This resulted in failure of
building aarch64 port. The code wrongly processed insns beyond the
output reloads of the current insn. This patch fixes it.
gcc/ChangeLog:
* lra-constraints.cc (curr_insn_transform): Process output stack
pointer reloads before emitting reload insns.
-rw-r--r-- | gcc/lra-constraints.cc | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/lra-constraints.cc b/gcc/lra-constraints.cc index 8d9443a..c718bed 100644 --- a/gcc/lra-constraints.cc +++ b/gcc/lra-constraints.cc @@ -4840,7 +4840,6 @@ curr_insn_transform (bool check_only_p) /* Most probably there are no enough registers to satisfy asm insn: */ lra_asm_insn_error (curr_insn); } - lra_process_new_insns (curr_insn, before, after, "Inserting insn reload"); if (goal_alt_out_sp_reload_p) { /* We have an output stack pointer reload -- update sp offset: */ @@ -4863,6 +4862,7 @@ curr_insn_transform (bool check_only_p) } lra_assert (done_p); } + lra_process_new_insns (curr_insn, before, after, "Inserting insn reload"); return change_p; } |