This is the mail archive of the 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]
Other format: [Raw text]

RE: Combined top-down and bottom-up instruction scheduler

> Subject: Re: Combined top-down and bottom-up instruction scheduler
> To:;
> CC:
> From:
> Date: Tue, 8 Sep 2015 12:51:24 -0600
> On 09/08/2015 12:39 PM, Aditya K wrote:
>> IIUC, in the haifa-sched.c, the default scheduling algorithm seems to
>> be top-down (before reload). Is there a way to schedule the other way
>> (bottom up), or both ways?
> Not that I'm aware of. Note that region scheduling allows insns to move
> between basic blocks to help fill the bubbles that can occur at the end
> of a block.
>> As a use case for bottom-up or some other heuristic: Currently, the
>> first priority in the selection is given to the longest path, in some
>> cases this may produce code with stalls at the end of the basic
>> block. Whereas in the case of combined top-down + bottom-up
>> scheduling we would end up having stalls in the middle of the basic
>> block.
> GCC's original scheduler worked bottom-up until ~1997. IBM Haifa's work
> turned it into a top-down model and was a small, but clear improvement.
> There's certainly better things that can be done than strictly top-down
> or bottom-up, but revamping the scheduler again hasn't been seen as a
> major win for the most common processors GCC targets these days. Thus
> it hasn't been a significant area of focus.

Do you have pointers on places to look for if I want to explore bottom-up, or maybe a combination of the two.


> Jeff

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