aboutsummaryrefslogtreecommitdiff
path: root/gcc/lra-constraints.c
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2019-01-10 21:02:50 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2019-01-10 21:02:50 +0000
commit7e4d17a84648b9844a8ddebe88269857ab33f4ab (patch)
tree47f1045bd356f4375b22344adfda3e7807680e26 /gcc/lra-constraints.c
parentf25507d041de4df6fffabedbed57c07ecff0d9ab (diff)
downloadgcc-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.c4
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 ();