diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/combine.c | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a0bef4e..e13577d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2010-08-25 Bernd Schmidt <bernds@codesourcery.com> + + 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 <rguenther@suse.de> PR lto/44562 diff --git a/gcc/combine.c b/gcc/combine.c index 1f8e970..f144d1e 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. */ |