diff options
author | Vladimir Makarov <vmakarov@redhat.com> | 2018-02-22 21:17:51 +0000 |
---|---|---|
committer | Vladimir Makarov <vmakarov@gcc.gnu.org> | 2018-02-22 21:17:51 +0000 |
commit | 7874b7c5b59923d8a56eaf41f7518c71b910355e (patch) | |
tree | 7268aa9b5a8752e1ace59914f5238e43daa7a182 /gcc/lra.c | |
parent | b613cc2e9120ea002f8a0855d2620ee4ba8fbfe5 (diff) | |
download | gcc-7874b7c5b59923d8a56eaf41f7518c71b910355e.zip gcc-7874b7c5b59923d8a56eaf41f7518c71b910355e.tar.gz gcc-7874b7c5b59923d8a56eaf41f7518c71b910355e.tar.bz2 |
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
Diffstat (limited to 'gcc/lra.c')
-rw-r--r-- | gcc/lra.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -958,7 +958,7 @@ lra_set_insn_recog_data (rtx_insn *insn) data = XNEW (struct lra_insn_recog_data); lra_insn_recog_data[uid] = data; data->insn = insn; - data->used_insn_alternative = -1; + data->used_insn_alternative = LRA_UNKNOWN_ALT; data->icode = icode; data->regs = NULL; if (DEBUG_INSN_P (insn)) @@ -1207,7 +1207,7 @@ lra_update_insn_recog_data (rtx_insn *insn) return data; } insn_static_data = data->insn_static_data; - data->used_insn_alternative = -1; + data->used_insn_alternative = LRA_UNKNOWN_ALT; if (DEBUG_INSN_P (insn)) return data; if (data->icode < 0) |