This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Question on parallel execution inside the processor




  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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]