diff options
author | Richard Henderson <rth@gcc.gnu.org> | 1998-08-26 11:47:42 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 1998-08-26 11:47:42 -0700 |
commit | 4bdc8810f6b2233b34b51c1491d9b70fad203e8d (patch) | |
tree | a18467d7258d14485ecc64dfbc4054a3ff3c0202 /gcc | |
parent | 425c08a151458c1c44c27d191ef8d46756980b06 (diff) | |
download | gcc-4bdc8810f6b2233b34b51c1491d9b70fad203e8d.zip gcc-4bdc8810f6b2233b34b51c1491d9b70fad203e8d.tar.gz gcc-4bdc8810f6b2233b34b51c1491d9b70fad203e8d.tar.bz2 |
haifa-sched.c (last_clock_var): New.
* haifa-sched.c (last_clock_var): New.
(schedule_block): Initialize it.
(schedule_insn): Use it to fill insn modes with issue information.
From-SVN: r22009
Diffstat (limited to 'gcc')
-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 12e82d6..7a26a6a 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. */ |