aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@redhat.com>2001-03-01 14:25:30 +0000
committerBernd Schmidt <bernds@gcc.gnu.org>2001-03-01 14:25:30 +0000
commit2d1b811d7e693d0a5d3593a0593394ce4aa6a2c1 (patch)
tree80726c359bbb796183b313f2c8ba871a69680f43 /gcc
parent7a87c39c565d48bdf978027c77672de58eeff6fc (diff)
downloadgcc-2d1b811d7e693d0a5d3593a0593394ce4aa6a2c1.zip
gcc-2d1b811d7e693d0a5d3593a0593394ce4aa6a2c1.tar.gz
gcc-2d1b811d7e693d0a5d3593a0593394ce4aa6a2c1.tar.bz2
Rotate bundles earlier in ia64_sched_reorder
From-SVN: r40157
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog1
-rw-r--r--gcc/config/ia64/ia64.c18
2 files changed, 10 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index c72d69e..0247ae2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -5,6 +5,7 @@
(gen_nop_type): New function.
(ia64_emit_nops): New function.
(ia64_reorg): Call it.
+ (ia64_sched_reorder): Move code that rotates bundles up a bit.
* reload1.c (eliminate_regs_in_insn): Restrict the special case
code not to try to optimize adds with anything but a REG destination.
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 1b49a5c..2b72959 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -5665,6 +5665,15 @@ ia64_sched_reorder (dump, sched_verbose, ready, pn_ready, reorder_type)
dump_current_packet (dump);
}
+ if (reorder_type == 0)
+ {
+ if (sched_data.cur == 6)
+ rotate_two_bundles (sched_verbose ? dump : NULL);
+ else if (sched_data.cur >= 3)
+ rotate_one_bundle (sched_verbose ? dump : NULL);
+ sched_data.first_slot = sched_data.cur;
+ }
+
/* First, move all USEs, CLOBBERs and other crud out of the way. */
highest = ready[n_ready - 1];
for (insnp = ready; insnp < e_ready; insnp++)
@@ -5738,15 +5747,6 @@ ia64_sched_reorder (dump, sched_verbose, ready, pn_ready, reorder_type)
}
}
- if (reorder_type == 0)
- {
- if (sched_data.cur == 6)
- rotate_two_bundles (sched_verbose ? dump : NULL);
- else if (sched_data.cur >= 3)
- rotate_one_bundle (sched_verbose ? dump : NULL);
- sched_data.first_slot = sched_data.cur;
- }
-
return itanium_reorder (sched_verbose ? dump : NULL,
ready, e_ready, reorder_type == 1);
}