OSDN Git Service

* tracer.c (rest_of_handle_tracer): We already cleaned
[pf3gnuchains/gcc-fork.git] / gcc / reorg.c
index 3376c00..8c097dc 100644 (file)
@@ -2817,6 +2817,8 @@ fill_slots_from_thread (rtx insn, rtx condition, rtx thread,
       dest = SET_DEST (pat), src = SET_SRC (pat);
       if ((GET_CODE (src) == PLUS || GET_CODE (src) == MINUS)
          && rtx_equal_p (XEXP (src, 0), dest)
+         && (!FLOAT_MODE_P (GET_MODE (src))
+             || flag_unsafe_math_optimizations)
          && ! reg_overlap_mentioned_p (dest, XEXP (src, 1))
          && ! side_effects_p (pat))
        {
@@ -3327,11 +3329,11 @@ relax_delay_slots (rtx first)
          continue;
        }
 
-      /* See if this jump (with its delay slots) branches around another
-        jump (without delay slots).  If so, invert this jump and point
-        it to the target of the second jump.  We cannot do this for
-        annulled jumps, though.  Again, don't convert a jump to a RETURN
-        here.  */
+      /* See if this jump (with its delay slots) conditionally branches
+        around an unconditional jump (without delay slots).  If so, invert
+        this jump and point it to the target of the second jump.  We cannot
+        do this for annulled jumps, though.  Again, don't convert a jump to
+        a RETURN here.  */
       if (! INSN_ANNULLED_BRANCH_P (delay_insn)
          && any_condjump_p (delay_insn)
          && next && JUMP_P (next)
@@ -3775,12 +3777,13 @@ gate_handle_delay_slots (void)
 }
 
 /* Run delay slot optimization.  */
-static void
+static unsigned int
 rest_of_handle_delay_slots (void)
 {
 #ifdef DELAY_SLOTS
   dbr_schedule (get_insns ());
 #endif
+  return 0;
 }   
 
 struct tree_opt_pass pass_delay_slots =
@@ -3809,10 +3812,11 @@ gate_handle_machine_reorg (void)
 }
 
 
-static void
+static unsigned int
 rest_of_handle_machine_reorg (void)
 {
   targetm.machine_dependent_reorg ();
+  return 0;
 }
 
 struct tree_opt_pass pass_machine_reorg =