[PR105032] LRA: modify loop condition to find reload insns for hard reg splitting
authorVladimir N. Makarov <vmakarov@redhat.com>
Wed, 30 Mar 2022 17:03:44 +0000 (13:03 -0400)
committerVladimir N. Makarov <vmakarov@redhat.com>
Wed, 30 Mar 2022 17:10:45 +0000 (13:10 -0400)
commit22b0476a814a4759bb68f38b9415624a0fe52a7d
tree9460399844ccecd8f5b568625367e47ebf3c1633
parent58a3fda072e6caf149ce5b9616fc52129efaf2e9
[PR105032] LRA: modify loop condition to find reload insns for hard reg splitting

When trying to split hard reg live range to assign hard reg to a reload
pseudo, LRA searches for reload insns of the reload pseudo
assuming a specific order of the reload insns.  This order is violated if
reload involved in inheritance transformation. In such case, the loop used
for reload insn searching can become infinite.  The patch fixes this.

gcc/ChangeLog:

PR middle-end/105032
* lra-assigns.cc (find_reload_regno_insns): Modify loop condition.

gcc/testsuite/ChangeLog:

PR middle-end/105032
* gcc.target/i386/pr105032.c: New.
gcc/lra-assigns.cc
gcc/testsuite/gcc.target/i386/pr105032.c [new file with mode: 0644]