From 590de186001cbe4c43db6dd6185d264a0eaacb24 Mon Sep 17 00:00:00 2001 From: bernds Date: Tue, 19 Oct 2010 00:24:36 +0000 Subject: [PATCH] PR rtl-optimization/45966 * combine.c (try_combine): If added_sets_2, deal with the case where i0 feeds i1 and i1 feeds i2. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165674 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 6 ++++++ gcc/combine.c | 2 ++ 2 files changed, 8 insertions(+) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9ee8309..f9eea06 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-10-18 Bernd Schmidt + + PR rtl-optimization/45966 + * combine.c (try_combine): If added_sets_2, deal with the case + where i0 feeds i1 and i1 feeds i2. + 2010-10-18 Jan Hubicka * ipa.c (cgraph_externally_visible_p): Handle externally visible and diff --git a/gcc/combine.c b/gcc/combine.c index a5088b0..556228f7 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -3192,6 +3192,8 @@ try_combine (rtx i3, rtx i2, rtx i1, rtx i0, int *new_direct_jump_p) t = subst (t, i0dest, i0src, 0, 0); if (i1_feeds_i2_n) t = subst (t, i1dest, i1src, 0, 0); + if (i0_feeds_i1_n && i1_feeds_i2_n) + t = subst (t, i0dest, i0src, 0, 0); XVECEXP (newpat, 0, --total_sets) = t; } -- 2.7.4