2006-03-16 Maxim Kuvyrkov <mkuvyrkov@ispras.ru>
authormkuvyrkov <mkuvyrkov@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 16 Mar 2006 05:23:21 +0000 (05:23 +0000)
committermkuvyrkov <mkuvyrkov@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 16 Mar 2006 05:23:21 +0000 (05:23 +0000)
commite48970004af4707cf541fc319cb866638b29cb3a
tree2406ed9805b60255cb95efc06c870414886a802d
parent4bfe0e7b4c07dacce91704084834209b211eab90
2006-03-16  Maxim Kuvyrkov <mkuvyrkov@ispras.ru>

        * sched-int.h (struct haifa_insn_data): New fields: resolved_deps,
inter_tick, queue_index.
(struct sched_info): Change signature of init_ready_list field.
Adjust all initializations.
(RESOLVED_DEPS): New access macro.
(ready_add): Remove prototype.
(try_ready): Add prototype.
* sched-rgn.c (init_ready_list): Use try_ready.
(schedule_region): Initialize
current_sched_info->{sched_max_insns_priority, queue_must_finish_empty}.
* sched-ebb.c (new_ready): Remove.  Adjust ebb_sched_info.
(init_ready_list): Use try_ready.
(schedule_ebb): Initialize current_sched_info->sched_max_insns_priority.
* lists.c (remove_list_elem): Remove `static'.
(remove_free_INSN_LIST_elem): New function.
* rtl.h (remove_list_elem, remove_free_INSN_LIST_elem): Add prototypes.
* haifa-sched.c (INTER_TICK, QUEUE_INDEX): New macros.
(INVALID_TICK, MIN_TICK, QUEUE_SCHEDULED, QUEUE_NOWHERE, QUEUE_READY):
New constants.
(readyp): New variable.
(queue_remove, ready_remove_insn, fix_inter_tick, fix_tick_ready,
change_queue_index, resolve_dep): New static functions.
(try_ready): New function.  Adjust callers in sched-rgn.c and
sched-ebb.c to use it instead of ready_add.
(clock_var): Move at the begining of file.
(rank_for_schedule): Fix typo.
(queue_insn): Add assertion.  Handle QUEUE_INDEX.
(ready_lastpos): Enforce assertion.
(ready_add): Make it static.  Handle QUEUE_INDEX.  Add new argument,
update all callers.
(ready_remove_first, ready_remove): Handle QUEUE_INDEX.
(schedule_insn): Rewrite to use try_ready and resolve_dep.
(queue_to_ready): Use free_INSN_LIST_list.
(early_queue_to_ready): Fix typo.
(schedule_block): Init readyp.  Move init_ready_list call after the
initialization of clock_var.  Fix error in rejecting insn by
targetm.sched.dfa_new_cycle.  Add call to fix_inter_tick.  Remove code
that previously corrected INSN_TICKs.  Add code for handling
QUEUE_INDEX.
(set_priorities): Fix typo.
(sched_init): Initialize INSN_TICK, INTER_TICK and QUEUE_INDEX.
Clarify comment and code that keeps current_sched_info->next_tail
non-null.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112127 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/haifa-sched.c
gcc/lists.c
gcc/rtl.h
gcc/sched-ebb.c
gcc/sched-int.h
gcc/sched-rgn.c