aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJ"orn Rennecke <amylaar@cygnus.co.uk>1997-09-20 01:05:16 +0000
committerJeff Law <law@gcc.gnu.org>1997-09-19 19:05:16 -0600
commitcc5e164240ea462779b876cb1bca7e16123d257e (patch)
tree8e2b833b6d4c62b392a20808da820c811e83ac13 /gcc
parent272299b9cabbfe63101274564899222b737dede5 (diff)
downloadgcc-cc5e164240ea462779b876cb1bca7e16123d257e.zip
gcc-cc5e164240ea462779b876cb1bca7e16123d257e.tar.gz
gcc-cc5e164240ea462779b876cb1bca7e16123d257e.tar.bz2
jump.c (thread_jumps): check can_reverse_comparison_p before threading a reversed-condition jump.
* jump.c (thread_jumps): check can_reverse_comparison_p before threading a reversed-condition jump. From-SVN: r15590
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/jump.c5
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ac47a53..64efb49 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
Fri Sep 19 18:53:50 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
+ * jump.c (thread_jumps): check can_reverse_comparison_p before
+ threading a reversed-condition jump.
+
* sched.c (update_flow_info): Don't pass SCRATCH to dead_or_set_p.
* haifa-sched.c (update_flow_info): Likewise.
diff --git a/gcc/jump.c b/gcc/jump.c
index b277863..fee77d6 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -4463,7 +4463,10 @@ thread_jumps (f, max_reg, flag_before_loop)
if (rtx_equal_for_thread_p (b1op0, b2op0, b2)
&& rtx_equal_for_thread_p (b1op1, b2op1, b2)
&& (comparison_dominates_p (code1, code2)
- || comparison_dominates_p (code1, reverse_condition (code2))))
+ || (comparison_dominates_p (code1, reverse_condition (code2))
+ && can_reverse_comparison_p (XEXP (SET_SRC (PATTERN (b1)),
+ 0),
+ b1))))
{
t1 = prev_nonnote_insn (b1);
t2 = prev_nonnote_insn (b2);