summaryrefslogtreecommitdiff
path: root/gcc/haifa-sched.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>1998-08-26 18:47:42 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>1998-08-26 18:47:42 +0000
commit8da6595be2d202ef28daf5d5e4704c54e7c6f96c (patch)
treea18467d7258d14485ecc64dfbc4054a3ff3c0202 /gcc/haifa-sched.c
parent33d53209a7ee42979fe296ddbc3eff5f13a5aece (diff)
downloadgcc-8da6595be2d202ef28daf5d5e4704c54e7c6f96c.tar.gz
* haifa-sched.c (last_clock_var): New.
(schedule_block): Initialize it. (schedule_insn): Use it to fill insn modes with issue information. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22009 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/haifa-sched.c')
-rw-r--r--gcc/haifa-sched.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c
index 12e82d6dfaf..7a26a6ae952 100644
--- a/gcc/haifa-sched.c
+++ b/gcc/haifa-sched.c
@@ -4279,6 +4279,9 @@ adjust_priority (prev)
}
}
+/* Clock at which the previous instruction was issued. */
+static int last_clock_var;
+
/* INSN is the "currently executing insn". Launch each insn which was
waiting on INSN. READY is a vector of insns which are ready to fire.
N_READY is the number of elements in READY. CLOCK is the current
@@ -4363,6 +4366,17 @@ schedule_insn (insn, ready, n_ready, clock)
}
}
+ /* Annotate the instruction with issue information -- TImode
+ indicates that the instruction is expected not to be able
+ to issue on the same cycle as the previous insn. A machine
+ may use this information to decide how the instruction should
+ be aligned. */
+ if (reload_completed && issue_rate > 1)
+ {
+ PUT_MODE (insn, clock > last_clock_var ? TImode : VOIDmode);
+ last_clock_var = clock;
+ }
+
return n_ready;
}
@@ -6739,6 +6753,7 @@ schedule_block (bb, rgn_n_insns)
q_ptr = 0;
q_size = 0;
clock_var = 0;
+ last_clock_var = 0;
bzero ((char *) insn_queue, sizeof (insn_queue));
/* We start inserting insns after PREV_HEAD. */