Hi!

On Mon, Apr 20, 2020 at 09:56:34AM +0200, Richard Biener wrote:
> On Fri, Apr 17, 2020 at 10:51 PM Segher Boessenkool
> <seg...@kernel.crashing.org> wrote:
> > > Yeah well, but RTL is not in SSA form
> >
> > "Webs" are not the *same* as SSA, in a few crucial ways; but they serve
> > similar purposes: they both make code transformations easier to do.
> > Both do this by having more different (independent) names.
> >
> > > and there's no RTL IL verification
> > > in place to track degradation.
> >
> > Adding this isn't hard in principle.  But currently it is violated all
> > over the place, including in backend code.
> 
> It's a cheap excuse and clearly a lot of work.  But we've done it for GIMPLE
> and it was clearly worth it.  If only for documentation purposes.

Yes, I very much agree :-)  But how will we do this?  Make it warnings
only, and have those opt-in (for a port) even?

> > > And we even work in the opposite way
> > > when expanding to RTL from SSA, coalescing as much as we can ...
> >
> > Which often is bad.  A lot of what expand does is premature optimisation
> > that a) is much too complicated, and b) results in worse code in the end.
> > Expand should not try to do *anything* "interesting", it should "merely"
> > translate to RTL.
> >
> > (And in a way that can be debugged sanely at all, if possible ;-) )
> 
> Sure.  I've tried to turn off TER with only moderate success.  Another 
> approach
> would be to not do any coalescing but for PHIs (and maybe there only for edges
> where we cannot insert copies on w/o splitting it).

Yeah, that would be much simpler to do as well.

> But clearly all the magic expand does now should materialize itself on
> GIMPLE (see the patch series Martin posted for vcond* / vec_cmp*
> "expansion" on GIMPLE).

Probably most, yeah, but some things that expand does should be done
much *later* in RTL even :-)

> It's the magic that requires TER and TER clearly
> introduces the most noise in the GIMPLE -> RTL translation step (as to
> code motion and initial instruction selection if it "fails").

Expand does a lot of things that are very much historic, too.


Segher

Reply via email to