OSDN Git Service

* stor-layout.c (layout_type): Don't complain about a too small
[pf3gnuchains/gcc-fork.git] / gcc / sched-ebb.c
index 286d047..58f5d33 100644 (file)
@@ -18,8 +18,8 @@ for more details.
 
 You should have received a copy of the GNU General Public License
 along with GCC; see the file COPYING.  If not, write to the Free
-Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.  */
+Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301, USA.  */
 \f
 #include "config.h"
 #include "system.h"
@@ -29,7 +29,6 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #include "rtl.h"
 #include "tm_p.h"
 #include "hard-reg-set.h"
-#include "basic-block.h"
 #include "regs.h"
 #include "function.h"
 #include "flags.h"
@@ -184,11 +183,9 @@ compute_jump_reg_dependencies (rtx insn, regset cond_set, regset used,
         it may guard the fallthrough block from using a value that has
         conditionally overwritten that of the main codepath.  So we
         consider that it restores the value of the main codepath.  */
-      bitmap_operation (set, e->dest->global_live_at_start, cond_set,
-                       BITMAP_AND);
+      bitmap_and (set, e->dest->il.rtl->global_live_at_start, cond_set);
     else
-      bitmap_operation (used, used, e->dest->global_live_at_start,
-                       BITMAP_IOR);
+      bitmap_ior_into (used, e->dest->il.rtl->global_live_at_start);
 }
 
 /* Used in schedule_insns to initialize current_sched_info for scheduling
@@ -457,7 +454,8 @@ add_deps_for_risky_insns (rtx head, rtx tail)
            /* We can not change the mode of the backward
               dependency because REG_DEP_ANTI has the lowest
               rank.  */
-           if (add_dependence (insn, prev, REG_DEP_ANTI))
+           if (! sched_insns_conditions_mutex_p (insn, prev)
+               && add_dependence (insn, prev, REG_DEP_ANTI))
              add_forward_dependence (prev, insn, REG_DEP_ANTI);
             break;
 
@@ -528,11 +526,7 @@ schedule_ebb (rtx head, rtx tail)
 
       for (note = REG_NOTES (head); note; note = XEXP (note, 1))
        if (REG_NOTE_KIND (note) == REG_SAVE_NOTE)
-         {
-           remove_note (head, note);
-           note = XEXP (note, 1);
-           remove_note (head, note);
-         }
+         remove_note (head, note);
     }
 
   /* Remove remaining note insns from the block, save them in