diff options
author | Richard Henderson <rth@redhat.com> | 2002-05-02 16:59:52 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-05-02 16:59:52 -0700 |
commit | 0bfb9a691ff8561383df396da0fa0aff3e30fe43 (patch) | |
tree | bb037bbd88e7c88ed9fc60cad80131d6de5684be /gcc/haifa-sched.c | |
parent | 6b976d997cfd5ef56ecbe9f7ee5766034c7e614c (diff) | |
download | gcc-0bfb9a691ff8561383df396da0fa0aff3e30fe43.zip gcc-0bfb9a691ff8561383df396da0fa0aff3e30fe43.tar.gz gcc-0bfb9a691ff8561383df396da0fa0aff3e30fe43.tar.bz2 |
haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn emitted by cycle_display.
* haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn
emitted by cycle_display.
From-SVN: r53072
Diffstat (limited to 'gcc/haifa-sched.c')
-rw-r--r-- | gcc/haifa-sched.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c index 2ac8121..7af0e73 100644 --- a/gcc/haifa-sched.c +++ b/gcc/haifa-sched.c @@ -852,7 +852,7 @@ rank_for_schedule (x, y) { rtx tmp = *(const rtx *) y; rtx tmp2 = *(const rtx *) x; - rtx link; + rtx link, lsi; int tmp_class, tmp2_class, depend_count1, depend_count2; int val, priority_val, weight_val, info_val; @@ -871,23 +871,28 @@ rank_for_schedule (x, y) return info_val; /* Compare insns based on their relation to the last-scheduled-insn. */ - if (last_scheduled_insn) + for (lsi = last_scheduled_insn; + lsi && INSN_UID (lsi) >= old_max_uid; + lsi = PREV_INSN (lsi)) + continue; + + if (lsi) { /* Classify the instructions into three classes: 1) Data dependent on last schedule insn. 2) Anti/Output dependent on last scheduled insn. 3) Independent of last scheduled insn, or has latency of one. Choose the insn from the highest numbered class if different. */ - link = find_insn_list (tmp, INSN_DEPEND (last_scheduled_insn)); - if (link == 0 || insn_cost (last_scheduled_insn, link, tmp) == 1) + link = find_insn_list (tmp, INSN_DEPEND (lsi)); + if (link == 0 || insn_cost (lsi, link, tmp) == 1) tmp_class = 3; else if (REG_NOTE_KIND (link) == 0) /* Data dependence. */ tmp_class = 1; else tmp_class = 2; - link = find_insn_list (tmp2, INSN_DEPEND (last_scheduled_insn)); - if (link == 0 || insn_cost (last_scheduled_insn, link, tmp2) == 1) + link = find_insn_list (tmp2, INSN_DEPEND (lsi)); + if (link == 0 || insn_cost (lsi, link, tmp2) == 1) tmp2_class = 3; else if (REG_NOTE_KIND (link) == 0) /* Data dependence. */ tmp2_class = 1; |