diff options
author | Takayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp> | 2022-10-19 17:16:24 +0900 |
---|---|---|
committer | Max Filippov <jcmvbkbc@gmail.com> | 2022-10-19 04:29:00 -0700 |
commit | 4f3f0296acbb99a0fa2867986956e53e487206a9 (patch) | |
tree | f85733002515bd1855a03ae877f15426b815118f /gcc/config/xtensa/constraints.md | |
parent | 95c5cffb712d90bfe36f2cf71d3a052b8068db34 (diff) | |
download | gcc-4f3f0296acbb99a0fa2867986956e53e487206a9.zip gcc-4f3f0296acbb99a0fa2867986956e53e487206a9.tar.gz gcc-4f3f0296acbb99a0fa2867986956e53e487206a9.tar.bz2 |
xtensa: Prepare the transition from Reload to LRA
This patch provides the first step in the transition from Reload to LRA
in Xtensa.
gcc/ChangeLog:
* config/xtensa/xtensa-protos.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.
* config/xtensa/xtensa.h (CALL_REALLY_USED_REGISTERS):
Switch from CALL_USED_REGISTERS, and revise the comment.
* config/xtensa/constraints.md (Y):
Use !xtensa_split1_finished_p() instead of can_create_pseudo_p().
* config/xtensa/predicates.md (move_operand): Ditto.
* 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
* config/xtensa/xtensa.opt (-mlra): New target-specific option
for testing purpose.
Diffstat (limited to 'gcc/config/xtensa/constraints.md')
-rw-r--r-- | gcc/config/xtensa/constraints.md | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/config/xtensa/constraints.md b/gcc/config/xtensa/constraints.md index e4c314b..cd200d6 100644 --- a/gcc/config/xtensa/constraints.md +++ b/gcc/config/xtensa/constraints.md @@ -121,7 +121,7 @@ (ior (and (match_code "const_int,const_double,const,symbol_ref,label_ref") (match_test "TARGET_AUTO_LITPOOLS")) (and (match_code "const_int") - (match_test "can_create_pseudo_p ()")))) + (match_test "! xtensa_split1_finished_p ()")))) ;; Memory constraints. Do not use define_memory_constraint here. Doing so ;; causes reload to force some constants into the constant pool, but since |