diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-08-26 18:47:42 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 1998-08-26 18:47:42 +0000 |
commit | 8da6595be2d202ef28daf5d5e4704c54e7c6f96c (patch) | |
tree | a18467d7258d14485ecc64dfbc4054a3ff3c0202 /gcc/haifa-sched.c | |
parent | 33d53209a7ee42979fe296ddbc3eff5f13a5aece (diff) | |
download | gcc-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.c | 15 |
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. */ |