public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: Questions about Haifa scheduler
@ 1997-08-22 16:37 David Edelsohn
  1997-08-22 16:53 ` Jeffrey A Law
  0 siblings, 1 reply; 7+ messages in thread
From: David Edelsohn @ 1997-08-22 16:37 UTC (permalink / raw)
  To: egcs

>>>>> Allen Briggs writes:

Allen> Hello...  I'm looking for more information on the Haifa scheduler.  I
Allen> noticed a large comment at the top of haifa-sched.c.  Is there anything
Allen> more?  How well does it work on the m68k or PowerPC (my main processors
Allen> of interest at the moment ;-)?  Do the processor descriptions need to be
Allen> tuned for it?  Is there any good benchmarking tool that can be used to
Allen> try and optimize it?  Note, I'm just looking for basic info and pointers
Allen> right now...

	The Haifa scheduler seems to work best if the processor scheduling
description is accurate.  The original GCC scheduler did not truly
understand multi-issue, deeply-pipelined superscalar processors and
sometimes did better if the machine descriptions were transformed in
certain ways.  The POWER and PowerPC machine descriptions always have been
accurate.  Everyone is welcome to explore ways to obtain better
performance from the Haifa scheduler, but lying in the machine description
usually bites one in the end as the scheduler itself is fixed and improved.

	For the time being, the comments at the top of haifa-sched.c are
the extent of the public documentation.

David

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Questions about Haifa scheduler
  1997-08-22 16:37 Questions about Haifa scheduler David Edelsohn
@ 1997-08-22 16:53 ` Jeffrey A Law
  0 siblings, 0 replies; 7+ messages in thread
From: Jeffrey A Law @ 1997-08-22 16:53 UTC (permalink / raw)
  To: egcs

  In message <19970822112848.56919@puma.macbsd.com>you write:
  > Hello...  I'm looking for more information on the Haifa scheduler.  I
  > noticed a large comment at the top of haifa-sched.c.  Is there anything
  > more?
Not really....

Are you just looking for performance information?  Or are you looking
for technical information?  Regardless, this is the place to ask.

  > How well does it work on the m68k
The m68k has no scheduling parameters defined, so the instruction
scheduler will not do anything for 68k targets.

Furthermore, the 68k machine description often has one INSN generating
multiple instructions.  This tends to make instruction scheduling
less accurate.  Instruction scheduling works best when each INSN
corresponds to a single machine instruction -- the closer you get
to that goal, the more accurate the schedules will be.


  > or PowerPC (my main processors of interest at the moment ;-)?
Unknown at this point -- that's one of the things we're going to
need as we continue to convert to the haifa scheduler.

  > Do the processor descriptions need to be tuned for it?
Maybe, it depends on how the existing processor description was
written.

Some were written to get the best possible performance out of the
old scheduler.  Sometimes this involved "little white lies" about
issue delays and latency; these "little white lies" can seriously
impact the performance of code when using the haifa scheduler.

Targets will need a correct definition of ISSUE_RATE for haifa to
work well too.

  > Is there any good benchmarking tool that can be used to try and
  > optimize it?
The best benchmarking tool is always code you care about instead of
synthetic benchmarks.

So, benchmark it on code you care about :-)

Or get many of the widely available benchmarks and choose some
that are similar to the workloads you care about.

Jeff

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Questions about Haifa scheduler
  1997-08-22 19:23 egcs-ss-970814 on m68k-next-nextstep3 Jeffrey A Law
@ 1997-08-22 19:23 ` Jeffrey A Law
  0 siblings, 0 replies; 7+ messages in thread
From: Jeffrey A Law @ 1997-08-22 19:23 UTC (permalink / raw)
  To: egcs

  In message <19970822131918.44330@puma.macbsd.com>you write:
  > > Are you just looking for performance information?  Or are you looking
  > > for technical information?  Regardless, this is the place to ask.
  > 
  > More for technical information--it's probably too early to get any
  > meaningful performance comparison (except possibly on the PPC model(s)
  > that the development team was working with).
OK.  I (and others) posted some general information about it to the
list -- you can probably find them in the list archives on
http://www.cygnus.com/egcs .

  > Heh...  That's a little surprising since it's been around for a while
  > and I thought a lot of folks were using gcc for 68k-based embedded
  > systems...
Well, first the machine has to be able to have multiple instructions
running at the same time.  For older 68ks this was probably only
possible with FP insns.  Newer ports may be different.

Second, someone actually was to describe the machine to the scheduler;
and with the way the 68k port has been written describing it to the
scheduler would be a non-trivial project.

Jeff

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Questions about Haifa scheduler
@ 1997-08-22 17:41 meissner
  0 siblings, 0 replies; 7+ messages in thread
From: meissner @ 1997-08-22 17:41 UTC (permalink / raw)
  To: egcs

| Heh...  That's a little surprising since it's been around for a while
| and I thought a lot of folks were using gcc for 68k-based embedded
| systems...

Ah, but scheduling does not do anything for you unless you have function units
that can do things in parallel (either through pipeling and/or multiple
functional units).  Have the newer 68ks started doing things like this?  For
example, until the Pentium came out, the x86 line could only do integer and fp
ops in parallel at a gross level, and so no scheduling information was put in
the md field.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Questions about Haifa scheduler
  1997-08-22 17:17 snapshot testsuite running bolix David S. Miller
@ 1997-08-22 17:19 ` Allen Briggs
  0 siblings, 0 replies; 7+ messages in thread
From: Allen Briggs @ 1997-08-22 17:19 UTC (permalink / raw)
  To: egcs

> Are you just looking for performance information?  Or are you looking
> for technical information?  Regardless, this is the place to ask.

More for technical information--it's probably too early to get any
meaningful performance comparison (except possibly on the PPC model(s)
that the development team was working with).

> The m68k has no scheduling parameters defined, so the instruction
> scheduler will not do anything for 68k targets.

Heh...  That's a little surprising since it's been around for a while
and I thought a lot of folks were using gcc for 68k-based embedded
systems...

Maybe I'll look at this if I get bored (unlikely).  It's chalked on the
list, anyway.  I've been wanting to learn more about the gcc backend for
a while...

> The best benchmarking tool is always code you care about instead of
> synthetic benchmarks.

:-)  Of course...

Thanks for the responses, folks.

-allen

-- 
              Allen Briggs - end killing - briggs@macbsd.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Questions about Haifa scheduler
@ 1997-08-22 16:53 meissner
  0 siblings, 0 replies; 7+ messages in thread
From: meissner @ 1997-08-22 16:53 UTC (permalink / raw)
  To: egcs

|   > or PowerPC (my main processors of interest at the moment ;-)?
| Unknown at this point -- that's one of the things we're going to
| need as we continue to convert to the haifa scheduler.

In theory, the PowerPC should be pretty accurate in terms of the scheduler,
since that was the machine IBM Haifa originally worked with (to no great
surprise :-).  One optimization is to use CTR for simple count down (and maybe
count up) loops.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Questions about Haifa scheduler
  1997-08-22 13:53 Building of generated parser files Andreas Schwab
@ 1997-08-22 15:28 ` Allen Briggs
  0 siblings, 0 replies; 7+ messages in thread
From: Allen Briggs @ 1997-08-22 15:28 UTC (permalink / raw)
  To: egcs

Hello...  I'm looking for more information on the Haifa scheduler.  I
noticed a large comment at the top of haifa-sched.c.  Is there anything
more?  How well does it work on the m68k or PowerPC (my main processors
of interest at the moment ;-)?  Do the processor descriptions need to be
tuned for it?  Is there any good benchmarking tool that can be used to
try and optimize it?  Note, I'm just looking for basic info and pointers
right now...

Thanks,
-allen

-- 
              Allen Briggs - end killing - briggs@macbsd.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~1997-08-22 19:23 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1997-08-22 16:37 Questions about Haifa scheduler David Edelsohn
1997-08-22 16:53 ` Jeffrey A Law
  -- strict thread matches above, loose matches on Subject: below --
1997-08-22 19:23 egcs-ss-970814 on m68k-next-nextstep3 Jeffrey A Law
1997-08-22 19:23 ` Questions about Haifa scheduler Jeffrey A Law
1997-08-22 17:41 meissner
1997-08-22 17:17 snapshot testsuite running bolix David S. Miller
1997-08-22 17:19 ` Questions about Haifa scheduler Allen Briggs
1997-08-22 16:53 meissner
1997-08-22 13:53 Building of generated parser files Andreas Schwab
1997-08-22 15:28 ` Questions about Haifa scheduler Allen Briggs

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).