This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Question on parallel execution inside the processor
- To: Martin Kahlert <martin dot kahlert at mchp dot siemens dot de>
- Subject: Re: Question on parallel execution inside the processor
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Tue, 23 Jun 1998 18:34:22 -0600
- cc: egcs at cygnus dot com
- Reply-To: law at cygnus dot com
In message <199806231329.PAA27951@keksy.mchp.siemens.de>you write:
> Hi,
> is there any pass in egcs, which tries to schedule instructions
> in a way, that no pipeline stalls occur any more?
The scheduler attempts to do this.
> The haifa scheduler optimizes on RTL code - doesn't it?
Yes.
> So it can't know anything about assembler instructions,
Nor does any other pass in the compiler.
> which can only be executed in pipeline X and therefor
> shouldn't be preceeded by instructions which only
> work in X, too. A good compiler would try to put
> instructions in between.
GCC does this. Basically each hunk of RTL has a series of attributes
which describe the type of operation it performs.
In the machine description we can map from instruction types to
pipeline units. Thus the scheduler has the information it needs
to schedule instructions to avoid pipeline stalls.
jeff