On Fri, Oct 31, 2014 at 7:12 PM, Connor Abbott <cwabbo...@gmail.com> wrote:
> On Fri, Oct 31, 2014 at 9:27 PM, Matt Turner <matts...@gmail.com> wrote:
>>    Probably a bottom-up instruction scheduling pass to help sink MOV-imm
>>       (Currently losing a bunch of SIMD16 programs, I expect because of
>>        this)
>
> Just wondering... what would a bottom-up scheduling pass do to help if
> we already try to shorten live ranges?

Good question. You're right that we do pre-register allocation
scheduling in order to shorten live ranges, but it works by scheduling
dependent instructions closer to the instructions that produced the
data they consume, rather than sinking producing instructions closer
to the consumers. I think a bottom-up instruction scheduling pass
would do that.

> Another way to help solve the
> problem might be to make the constant load insertion pass smarter
> about where it inserts the loads in the first place.

I think you're probably right. And simply decoupling handling
constants better from an improved instruction scheduler seems like a
good thing.

> Finally, if
> nothing else fixes the issue we might want to write something that
> (efficiently & intelligently) calculates the register pressure as
> we're walking the program (maybe we should walk it bottom-up and use
> the live-out sets?), and then don't insert the mov if it increases the
> register pressure in between the def and use above the magic number --
> we'll probably want something like this more once we go to SSA and get
> smarter about register allocation anyways.

Put it on the TODO list :)
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to