This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: DFA scheduler for i386.md
- From: Vladimir Makarov <vmakarov at redhat dot com>
- To: law at redhat dot com
- Cc: Jan Hubicka <jh at suse dot cz>, gcc at gcc dot gnu dot org
- Date: Fri, 19 Apr 2002 12:27:33 -0400
- Subject: Re: DFA scheduler for i386.md
- References: <6571.1019232788@porcupine.cygnus.com>
law@redhat.com wrote:
>
> In message <3CC03CC7.2E51C9D7@redhat.com>, Vladimir Makarov writes:
> > Jan Hubicka wrote:
> > >
> > > Hi,
> > > Yesterday I started work on rewriting the scheduler descriptions in i386.m
> > d to
> > > DFA scheduler in hope that new code will be smaller and easier to understa
> > nd.
> > > So far I am about 70% done with pentium description and it apperas to work
> > well
> > > and be much cleaner than older code. I hope to fix all the MD_SCHED macro
> > s
> > > usage soonish so we will be able to kill it later. Also the pentium descr
> > iption
> > > is far the larges from i386 ones that is about the larges in GCC, so I wan
> > t
> > > to give DFA some testing.
> > >
> >
> > Thanks, Jan. But i686 is out of order execution, speculative
> > processor. Moreover, the situation is complicated because x86 insns are
> > translated into smaller RISC like insns and you don't know this
> > translation. Even all insn scheduling practically gives nothing to
> > improve the code. So it will be a miracle if you have an improvement by
> > usage of the dfa description.
> I disagree. Vlad, why don't you read some of the literature which
> discusses scheduling for out of order execution machines?
>
> The basic concept is that you do not schedule for latency, but instead
> for the various units such as issue/retirement.
>
> For example, scheduling on the PA8000 (out of order) wins about 6% over not
> scheduling. This is due to presenting instructions to the processor in such
> a way as to improve the utilization of the issue and retirement units.
I meant i686. Sure, even out-of-order execution/speculative
processors has some bottlenecks which can not resolved by insn
scheduler. But as for i686, I ran Speck for P4 with and without
scheduling several months ago. There is a very small difference (as I
remember only 1-2%).
Vlad