diff options
author | Vladimir N. Makarov <vmakarov@redhat.com> | 2021-10-26 14:03:42 -0400 |
---|---|---|
committer | Vladimir N. Makarov <vmakarov@redhat.com> | 2021-10-26 15:17:29 -0400 |
commit | 8c59f4118357789cfa8df2cf0d3ecb61be7e9041 (patch) | |
tree | c88f788cc7906fb84cbb1da9308d5e12cae80857 /gcc/fortran/symbol.c | |
parent | cfcb27cfcb1d32b8cf7bc463cc1fc5cacae8d199 (diff) | |
download | gcc-8c59f4118357789cfa8df2cf0d3ecb61be7e9041.zip gcc-8c59f4118357789cfa8df2cf0d3ecb61be7e9041.tar.gz gcc-8c59f4118357789cfa8df2cf0d3ecb61be7e9041.tar.bz2 |
[PR102842] Consider all outputs in generation of matching reloads
Without considering all output insn operands (not only processed
before), in rare cases LRA can use the same hard register for
different outputs of the insn on different assignment subpasses. The
patch fixes the problem.
gcc/ChangeLog:
PR rtl-optimization/102842
* lra-constraints.c (match_reload): Ignore out in checking values
of outs.
(curr_insn_transform): Collect outputs before doing reloads of operands.
gcc/testsuite/ChangeLog:
PR rtl-optimization/102842
* g++.target/arm/pr102842.C: New test.
Diffstat (limited to 'gcc/fortran/symbol.c')
0 files changed, 0 insertions, 0 deletions