aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@codesourcery.com>2011-06-09 13:55:41 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2011-06-09 13:55:41 +0000
commit547fdef870a84b90382a9de0bf4aa9e85ba1003a (patch)
tree5617ea7f9522c6742baf373e0696cb132d0808f0 /gcc
parent10e48e3927a74bf7b2ec7a1b68fb840f4b1be588 (diff)
downloadgcc-547fdef870a84b90382a9de0bf4aa9e85ba1003a.zip
gcc-547fdef870a84b90382a9de0bf4aa9e85ba1003a.tar.gz
gcc-547fdef870a84b90382a9de0bf4aa9e85ba1003a.tar.bz2
re PR target/48673 (GCC generates WAW and RAW conflicts on IA64.)
PR target/48673 * config/ia64/ia64.c (ia64_reorg): Clear BB_DISABLE_SCHEDULE flag in all basic blocks. From-SVN: r174844
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/ia64/ia64.c6
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index b2251e9..cbc85ee 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index d6eeb3d..b8ffc14 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -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;