This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Small extension to MD_SCHED hack
- To: egcs at cygnus dot com
- Subject: Small extension to MD_SCHED hack
- From: Jan Hubicka <hubicka at atrey dot karlin dot mff dot cuni dot cz>
- Date: Tue, 13 Oct 1998 18:19:03 +0200
Hi
After playing a bit more with MD_SCHED macros I think that it is neccesary to
give some posibility to MD_SCHED macros to pick no instruction at given cycle
and force scheduler to wait. This should happend at Pentium for example in case
that U pipe is busy by prefix and I can use just UV or V instruction.
Other case is IMUL, wich blocks both integer pipes, but seems to overlap with
FP code, so I can't define it as one cycle.
Other problem is that cycles counter used by MD_SCHED
macro is hard to keep in sync with scheduler, so it would nice to pass clock_var
to MD_SCHED_RORDER.
I am currently using following macro, wich is really ugly hack:
#define MD_SCHED_REORDER(DUMP, SCHED_VERBOSE, READY, N_READY) \
if (TARGET_PENTIUM) \
while (!pentium_sched_reorder (DUMP, SCHED_VERBOSE, READY, N_READY, clock_var )) \
{ clock_var++; \
N_READY = queue_to_ready (READY, N_READY); \
SCHED_SORT (READY, N_READY); \
}
Would be possible to add such functionality to MD_SCHED macros? (I can do that myself
if you think it is good thing to do and you suggest good API.)
I would probably turn MD_SCHED_REORDER turn into expression returning 0 when
no intructions can be scheduled and add CLOCK_VAR parameter.
Honza
--
OK. Lets make a signature file.
+-------------------------------------------------------------------------+
| Jan Hubicka (Jan Hubi\v{c}ka in TeX) hubicka@freesoft.cz |
| Czech free software foundation: http://www.freesoft.cz |
|AA project - the new way for computer graphics - http://www.ta.jcu.cz/aa |
| homepage: http://www.paru.cas.cz/~hubicka/, games koules, Xonix, fast |
| fractal zoomer XaoS, index of Czech GNU/Linux/UN*X documentation etc. |
+-------------------------------------------------------------------------+