From 4bdc8810f6b2233b34b51c1491d9b70fad203e8d Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Wed, 26 Aug 1998 11:47:42 -0700 Subject: 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 --- gcc/haifa-sched.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'gcc') 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. */ -- cgit v1.1