This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: haifa
- To: badrian at ss dot pub dot ro
- Subject: Re: haifa
- From: Jason Eckhardt <jle at cygnus dot com>
- Date: Mon, 10 Apr 2000 08:32:03 -0700 (PDT)
- cc: gcc at gcc dot gnu dot org
>
>
>Subject: haifa
>From: Dragos BADEA <badrian@ss.pub.ro>
>Date: Thu, 6 Apr 2000 19:27:35 +0300 (EET DST)
>
> Hi!
>
> Could you tell me please which is the state of art of the haifa
>scheduler - or is there some documentation on it ...?
Without going into great detail, the haifa scheduler uses a limited form of
global (inter-block) scheduling.
That is, it can only perform scheduling motions between control-equivalent
blocks as well as some speculative motions. It does not perform any motions
that would require compensation copies during scheduling, such as movement
below splits or above joins.
The actual scheduling of instructions is done by a simple, non-backtracking,
forward list scheduler.
This inter-block scheme is one of the least aggressive approaches to global
scheduling, but is easier to implement than other schemes and is at
least some improvement over intra-block scheduling.
> Is it supposed to do the scheduling all by itself or together with
>the old scheduler? Does it need some new machine description macros etc.?
It performs all scheduling itself. Intra-block scheduling (that used to be
performed by the old scheduler) is a subset of haifa's functionality.
regards, jason.