aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/xtensa/constraints.md
diff options
context:
space:
mode:
authorTakayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>2022-10-19 17:16:24 +0900
committerMax Filippov <jcmvbkbc@gmail.com>2022-10-19 04:29:00 -0700
commit4f3f0296acbb99a0fa2867986956e53e487206a9 (patch)
treef85733002515bd1855a03ae877f15426b815118f /gcc/config/xtensa/constraints.md
parent95c5cffb712d90bfe36f2cf71d3a052b8068db34 (diff)
downloadgcc-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.md2
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