aboutsummaryrefslogtreecommitdiff
path: root/gcc/ira.c
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2021-03-26 17:09:24 +0000
committerVladimir Makarov <vmakarov@redhat.com>2021-03-26 17:11:30 +0000
commit0d37e2d3ead072ba57e03fcb97a041504a22e721 (patch)
tree01956ec203c173039a8d1838fcd6c724f1db6cab /gcc/ira.c
parent6b8b0c8e243bdc122a9ddd42030275494b1148ff (diff)
downloadgcc-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/ira.c')
-rw-r--r--gcc/ira.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/ira.c b/gcc/ira.c
index 7e90328..b93588d 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -1871,10 +1871,10 @@ ira_setup_alts (rtx_insn *insn)
goto op_success;
case CT_MEMORY:
+ case CT_RELAXED_MEMORY:
mem = op;
/* Fall through. */
case CT_SPECIAL_MEMORY:
- case CT_RELAXED_MEMORY:
if (!mem)
mem = extract_mem_from_operand (op);
if (MEM_P (mem))