From 4942fc569c5ba8ab9bebfad2d9cc9630a69c2579 Mon Sep 17 00:00:00 2001 From: Bernd Schmidt Date: Wed, 25 Aug 2010 14:08:23 +0000 Subject: [PATCH] re PR middle-end/45355 (FAIL: gcc.c-torture/compile/pr43164.c) PR middle-end/45355 * combine.c (try_combine): Use reg_overlap_mentioned_p rather than dead_or_set_p when computing i0_feeds_i2_n. From-SVN: r163546 --- gcc/ChangeLog | 6 ++++++ gcc/combine.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a0bef4e60a89..e13577d06bac 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-08-25 Bernd Schmidt + + PR middle-end/45355 + * combine.c (try_combine): Use reg_overlap_mentioned_p rather than + dead_or_set_p when computing i0_feeds_i2_n. + 2010-08-25 Richard Guenther PR lto/44562 diff --git a/gcc/combine.c b/gcc/combine.c index 1f8e97007ee6..f144d1e8f281 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -2862,7 +2862,7 @@ try_combine (rtx i3, rtx i2, rtx i1, rtx i0, int *new_direct_jump_p) i1_feeds_i2_n = i1 && insn_a_feeds_b (i1, i2); i0_feeds_i1_n = i0 && insn_a_feeds_b (i0, i1); i0_feeds_i2_n = (i0 && (!i0_feeds_i1_n ? insn_a_feeds_b (i0, i2) - : (!dead_or_set_p (i1, i0dest) + : (!reg_overlap_mentioned_p (i1dest, i0dest) && reg_overlap_mentioned_p (i0dest, i2src)))); /* Ensure that I3's pattern can be the destination of combines. */ -- 2.47.2