OSDN Git Service

* jump.c (thread_jumps): check can_reverse_comparison_p before
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 20 Sep 1997 01:05:16 +0000 (01:05 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 20 Sep 1997 01:05:16 +0000 (01:05 +0000)
        threading a reversed-condition jump.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@15590 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/jump.c

index ac47a53..64efb49 100644 (file)
@@ -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.
 
index b277863..fee77d6 100644 (file)
@@ -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);