re PR target/48673 (GCC generates WAW and RAW conflicts on IA64.)
authorBernd Schmidt <bernds@codesourcery.com>
Thu, 9 Jun 2011 13:55:41 +0000 (13:55 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Thu, 9 Jun 2011 13:55:41 +0000 (13:55 +0000)
PR target/48673
* config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
in all basic blocks.

From-SVN: r174844

gcc/ChangeLog
gcc/config/ia64/ia64.c

index b2251e94e6309a8f7a2594788402dc5b4462e2fe..cbc85ee7a8e0dd2a584785a403f21e307eea688f 100644 (file)
@@ -1,3 +1,9 @@
+2011-06-09  Bernd Schmidt  <bernds@codesourcery.com>
+
+       PR target/48673
+       * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag
+       in all basic blocks.
+
 2011-06-09  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
        * config/alpha/netbsd.h (ENABLE_EXECUTE_STACK): Remove.
index d6eeb3d706997e723c7e31c5791dc681ab10d293..b8ffc14debdc7f5cf8d430ef1ce326de03fa9a4b 100644 (file)
@@ -9394,9 +9394,15 @@ ia64_reorg (void)
   if (optimize && flag_schedule_insns_after_reload
       && dbg_cnt (ia64_sched2))
     {
+      basic_block bb;
       timevar_push (TV_SCHED2);
       ia64_final_schedule = 1;
 
+      /* We can't let modulo-sched prevent us from scheduling any bbs,
+        since we need the final schedule to produce bundle information.  */
+      FOR_EACH_BB (bb)
+       bb->flags &= ~BB_DISABLE_SCHEDULE;
+
       initiate_bundle_states ();
       ia64_nop = make_insn_raw (gen_nop ());
       PREV_INSN (ia64_nop) = NEXT_INSN (ia64_nop) = NULL_RTX;