diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2019-01-10 21:02:50 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2019-01-10 21:02:50 +0000 |
commit | 7e4d17a84648b9844a8ddebe88269857ab33f4ab (patch) | |
tree | 47f1045bd356f4375b22344adfda3e7807680e26 /gcc/lra-constraints.c | |
parent | f25507d041de4df6fffabedbed57c07ecff0d9ab (diff) | |
download | gcc-7e4d17a84648b9844a8ddebe88269857ab33f4ab.zip gcc-7e4d17a84648b9844a8ddebe88269857ab33f4ab.tar.gz gcc-7e4d17a84648b9844a8ddebe88269857ab33f4ab.tar.bz2 |
re PR rtl-optimization/87305 (Segfault in end_hard_regno in setup_live_pseudos_and_spill_after_risky_transforms on aarch64 big-endian)
2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/87305
* lra-assigns.c
(setup_live_pseudos_and_spill_after_risky_transforms): Check
allocation for big endian pseudos used as paradoxical subregs and
spill them if it is wrong.
* lra-constraints.c (lra_constraints): Add a comment.
2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/87305
* gcc.target/aarch64/pr87305.c: New.
From-SVN: r267823
Diffstat (limited to 'gcc/lra-constraints.c')
-rw-r--r-- | gcc/lra-constraints.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c index 4f434e5..c08ad9a 100644 --- a/gcc/lra-constraints.c +++ b/gcc/lra-constraints.c @@ -4739,7 +4739,9 @@ lra_constraints (bool first_p) else /* On the first iteration we should check IRA assignment correctness. In rare cases, the assignments can be wrong as - early clobbers operands are ignored in IRA. */ + early clobbers operands are ignored in IRA or usages of + paradoxical sub-registers are not taken into account by + IRA. */ lra_risky_transformations_p = first_p; new_insn_uid_start = get_max_uid (); new_regno_start = first_p ? lra_constraint_new_regno_start : max_reg_num (); |