diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2021-03-26 17:09:24 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@redhat.com> | 2021-03-26 17:11:30 +0000 |
commit | 0d37e2d3ead072ba57e03fcb97a041504a22e721 (patch) | |
tree | 01956ec203c173039a8d1838fcd6c724f1db6cab /gcc/recog.c | |
parent | 6b8b0c8e243bdc122a9ddd42030275494b1148ff (diff) | |
download | gcc-0d37e2d3ead072ba57e03fcb97a041504a22e721.zip gcc-0d37e2d3ead072ba57e03fcb97a041504a22e721.tar.gz gcc-0d37e2d3ead072ba57e03fcb97a041504a22e721.tar.bz2 |
[PR99766] Consider relaxed memory associated more with memory instead of special memory.
Relaxed memory should be considered more like memory then special memory.
gcc/ChangeLog:
PR target/99766
* ira-costs.c (record_reg_classes): Put case with
CT_RELAXED_MEMORY adjacent to one with CT_MEMORY.
* ira.c (ira_setup_alts): Ditto.
* lra-constraints.c (process_alt_operands): Ditto.
* recog.c (asm_operand_ok): Ditto.
* reload.c (find_reloads): Ditto.
gcc/testsuite/ChangeLog:
PR target/99766
* g++.target/aarch64/sve/pr99766.C: New.
Diffstat (limited to 'gcc/recog.c')
-rw-r--r-- | gcc/recog.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/recog.c b/gcc/recog.c index ee143bc..eb617f1 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -2267,10 +2267,10 @@ asm_operand_ok (rtx op, const char *constraint, const char **constraints) break; case CT_MEMORY: + case CT_RELAXED_MEMORY: mem = op; /* Fall through. */ case CT_SPECIAL_MEMORY: - case CT_RELAXED_MEMORY: /* Every memory operand can be reloaded to fit. */ if (!mem) mem = extract_mem_from_operand (op); |