On Wed, Oct 19, 2022 at 1:16 AM Takayuki 'January June' Suwa <jjsuwa_sys3...@yahoo.co.jp> wrote: > This patch provides the first step in the transition from Reload to LRA > in Xtensa. > > gcc/ChangeLog: > > * config/xtensa/xtensa-proto.h > (xtensa_split1_finished_p, xtensa_split_DI_reg_imm): New prototypes. > * config/xtensa/xtensa.cc > (xtensa_split1_finished_p, xtensa_split_DI_reg_imm, xtensa_lra_p): > New functions. > (TARGET_LRA_P): Replace the dummy hook with xtensa_lra_p. > (xt_true_regnum): Rework. > * gcc/config/xtensa/xtensa.h (CALL_REALLY_USED_REGISTERS): > Switch from CALL_USED_REGISTERS, and revise the comment. > * gcc/config/xtensa/constraints.md (Y): > Use !xtensa_split1_finished_p() instead of can_create_pseudo_p(). > * gcc/config/xtensa/predicates.md (move_operand): Ditto. > * gcc/config/xtensa/xtensa.md: Add two new split patterns: > - splits DImode immediate load into two SImode ones > - puts out-of-constraint SImode constants into the constant pool > * gcc/config/xtensa/xtensa.opt (-mlra): New target-specific option > for testing purpose. > --- > gcc/config/xtensa/constraints.md | 2 +- > gcc/config/xtensa/predicates.md | 2 +- > gcc/config/xtensa/xtensa-protos.h | 2 + > gcc/config/xtensa/xtensa.cc | 69 ++++++++++++++++++++++++++----- > gcc/config/xtensa/xtensa.h | 8 ++-- > gcc/config/xtensa/xtensa.md | 36 ++++++++++++---- > gcc/config/xtensa/xtensa.opt | 4 ++ > 7 files changed, 99 insertions(+), 24 deletions(-)
Regtested for target=xtensa-linux-uclibc, no new regressions. Committed to master after fixing the changelog. -- Thanks. -- Max