re PR target/81572 (gcc-7 regression: unnecessary vector regmove on compare)
authorVladimir Makarov <vmakarov@redhat.com>
Thu, 22 Feb 2018 21:17:51 +0000 (21:17 +0000)
committerVladimir Makarov <vmakarov@gcc.gnu.org>
Thu, 22 Feb 2018 21:17:51 +0000 (21:17 +0000)
commit7874b7c5b59923d8a56eaf41f7518c71b910355e
tree7268aa9b5a8752e1ace59914f5238e43daa7a182
parentb613cc2e9120ea002f8a0855d2620ee4ba8fbfe5
re PR target/81572 (gcc-7 regression: unnecessary vector regmove on compare)

2018-02-22  Vladimir Makarov  <vmakarov@redhat.com>

PR target/81572
* lra-int.h (LRA_UNKNOWN_ALT, LRA_NON_CLOBBERED_ALT): New macros.
* lra.c (lra_set_insn_recog_data, lra_update_insn_recog_data): Use
LRA_UNKNOWN_ALT.
* lra-constraints.c (curr_insn_transform): Set up
LRA_NON_CLOBBERED_ALT for moves processed on the fast path.  Use
LRA_UNKNOWN_ALT.
(remove_inheritance_pseudos): Use LRA_UNKNOWN_ALT.
* lra-eliminations.c (spill_pseudos): Ditto.
(process_insn_for_elimination): Ditto.
* lra-lives.c (reg_early_clobber_p): Use the new macros.
* lra-spills.c (spill_pseudos): Use LRA_UNKNOWN_ALT and
LRA_NON_CLOBBERED_ALT.

2018-02-22  Vladimir Makarov  <vmakarov@redhat.com>

PR target/81572
* gcc.target/powerpc/pr81572.c: New.

From-SVN: r257915
gcc/ChangeLog
gcc/lra-constraints.c
gcc/lra-eliminations.c
gcc/lra-int.h
gcc/lra-lives.c
gcc/lra-spills.c
gcc/lra.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/powerpc/pr81572.c [new file with mode: 0644]