aboutsummaryrefslogtreecommitdiff
path: root/gcc/lra.c
diff options
context:
space:
mode:
authorVladimir Makarov <vmakarov@redhat.com>2018-02-22 21:17:51 +0000
committerVladimir Makarov <vmakarov@gcc.gnu.org>2018-02-22 21:17:51 +0000
commit7874b7c5b59923d8a56eaf41f7518c71b910355e (patch)
tree7268aa9b5a8752e1ace59914f5238e43daa7a182 /gcc/lra.c
parentb613cc2e9120ea002f8a0855d2620ee4ba8fbfe5 (diff)
downloadgcc-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.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gcc/lra.c b/gcc/lra.c
index c6feb26..08de09d 100644
--- a/gcc/lra.c
+++ b/gcc/lra.c
@@ -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)