diff options
author | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-03-01 14:25:30 +0000 |
---|---|---|
committer | bernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-03-01 14:25:30 +0000 |
commit | 8de12924a5ed51ac22986d7748499e8405669ea8 (patch) | |
tree | 80726c359bbb796183b313f2c8ba871a69680f43 | |
parent | 91ef57b052f228bdcbd40f921baecc6d9cf067d6 (diff) | |
download | gcc-8de12924a5ed51ac22986d7748499e8405669ea8.tar.gz |
Rotate bundles earlier in ia64_sched_reorder
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40157 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/ChangeLog | 1 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.c | 18 |
2 files changed, 10 insertions, 9 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c72d69ed0fa..0247ae2b117 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 1b49a5cd60b..2b72959bdbb 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); } |