Hi!

On Tue, Jan 26, 2021 at 11:47:53AM +0100, Richard Biener wrote:
> Anyway, I think the GIMPLE -> RTL transition currently is a too
> big step

Much agreed.  I also think that the expand pass itself needs a lot of
work to bring it into this century: it does much too much work, in a
circuitous way that makes debugging it hard, etc.

> and we should eventually try to lower GIMPLE

That should help the above problem, too: break expand into stages, get
rid of all the premature optimisations (and implement those elsewhere
where needed!), and get a much better debuggable end result (that is
also a lot less code).

> and IV
> selection should happen on a lower form where we for example
> can do the 1st level scheduling on

I don't think that helps, but maybe :-)

> or at least have a better idea
> on resource allocation

This is the holy grail.  Wait, I should decorate that:


    O_o !!! >>>  This is the holy grail.  <<< !!! O_o


> and latencies in dependence cycles since
> that's what really matters for unrolling.

I don't think latencies matter much for such decisions.  If the compiler
depends too much on actual machine latencies, makes "too sharp"
decisions, the code will run lousy on a slightly different (say, newer)
machine.  But certainly there needs to be *some* idea of how parallel
some code can run, yes.


Segher

Reply via email to