diff options
author | dorit <dorit@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-10-07 08:18:42 +0000 |
---|---|---|
committer | dorit <dorit@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-10-07 08:18:42 +0000 |
commit | 095421966c9288b044416b914fe115fb9f23fefd (patch) | |
tree | f042ad15742db1c1a7071c97d5bdc6214b27d841 /gcc/haifa-sched.c | |
parent | 0fbe5a3ef21baf78f3da21ab7fa66f9b28a812f5 (diff) | |
download | gcc-095421966c9288b044416b914fe115fb9f23fefd.tar.gz |
* sched-int.h (sched_info): New field
sched_max_insns_priority.
* sched-rgn.c (init_ready_list): Add invocations to
targetm.sched.adjust_priority.
(sched_max_insns_priority): Init new field.
* sched-ebb.c (sched_max_insns_priority): Init new field.
* haifa-sched.c (set_priorities): Set
sched_info->sched_max_insns_priority.
* config/rs6000/rs6000.h:
(rs6000_sched_restricted_insns_priority_str): Support new
flag -mprioritize-restricted-insns.
(DEFAULT_RESTRICTED_INSNS_PRIORITY): Define.
* config/rs6000/rs6000.c (is_dispatch_slot_restricted): New
function.
(rs6000_adjust_priority): Change priority of restricted
insns, using above new function and new flag.
* doc/invoke.texi (-mprioritize-restricted-insns): Document
new option.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72186 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/haifa-sched.c')
-rw-r--r-- | gcc/haifa-sched.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index 2776ec12c7f..652ad18b83b 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -2517,7 +2517,8 @@ set_priorities (rtx head, rtx tail) { rtx insn; int n_insn; - + int sched_max_insns_priority = + current_sched_info->sched_max_insns_priority; rtx prev_head; prev_head = PREV_INSN (head); @@ -2526,6 +2527,7 @@ set_priorities (rtx head, rtx tail) return 0; n_insn = 0; + sched_max_insns_priority = 0; for (insn = tail; insn != prev_head; insn = PREV_INSN (insn)) { if (GET_CODE (insn) == NOTE) @@ -2533,7 +2535,14 @@ set_priorities (rtx head, rtx tail) n_insn++; (void) priority (insn); + + if (INSN_PRIORITY_KNOWN (insn)) + sched_max_insns_priority = + MAX (sched_max_insns_priority, INSN_PRIORITY (insn)); } + sched_max_insns_priority += 1; + current_sched_info->sched_max_insns_priority = + sched_max_insns_priority; return n_insn; } |