aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/combine.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 993ac9b..c0249e8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2017-11-17 Segher Boessenkool <segher@kernel.crashing.org>
+
+ PR rtl-optimization/82621
+ * combine.c (try_combine): Do not split PARALLELs of two SETs if the
+ dest of one of those SETs is unused.
+
2017-11-17 Richard Biener <rguenther@suse.de>
PR fortran/83017
diff --git a/gcc/combine.c b/gcc/combine.c
index eab10c5..404cf33 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -3010,7 +3010,8 @@ try_combine (rtx_insn *i3, rtx_insn *i2, rtx_insn *i1, rtx_insn *i0,
&& is_parallel_of_n_reg_sets (PATTERN (i2), 2)
&& can_split_parallel_of_n_reg_sets (i2, 2)
&& !reg_used_between_p (SET_DEST (XVECEXP (PATTERN (i2), 0, 0)), i2, i3)
- && !reg_used_between_p (SET_DEST (XVECEXP (PATTERN (i2), 0, 1)), i2, i3))
+ && !reg_used_between_p (SET_DEST (XVECEXP (PATTERN (i2), 0, 1)), i2, i3)
+ && !find_reg_note (i2, REG_UNUSED, 0))
{
/* If there is no I1, there is no I0 either. */
i0 = i1;