On Mon, May 9, 2022 at 2:42 PM Andrew MacLeod <amacl...@redhat.com> wrote:
>
> On 5/2/22 02:30, Richard Biener wrote:
> > On Fri, Apr 29, 2022 at 6:22 PM Aldy Hernandez <al...@redhat.com> wrote:
> >>
> >> Andrew was mumbling something about a fast ranger mode for this
> >> release that should be on par with legacy evrp.  IIRC it would be
> >> purely DOM based, won't visit back edges, and there's no caching.  But
> >> he'll have to expand on it when he returns from vacation.  I don't
> >> know the details.
> > I would guess the stmt analysis building blocks (whatever API part of
> > ranger that is) can be used to produce something like that.  But in the
> > end it would be the old EVRP pass with the VRP stmt analysis it
> > re-used replaced with the appropriate ranger parts.
> >
> > But yes, I'd welcome that.  I'd also like to revisit integration of some
> > of this with value-numbering which doesn't do a DOM walk but instead
> > a RPO walk.
>
>
> Yes, it will bear numerous similarities to the old EVRP mechanism
> approach.  It'd would use a similar "current value" vector, just using
> multi-ranges and wired into the range-ops/gori mechanism for calculating
> outgoing ranges on outgoing/incoming edges.  Its next on my list after I
> get a few outstanding things in.
>
> An RPO walk should be trivial to work with as well.  Is there generic
> infrastructure for RPO like there is for DOM walks, or is it more wired
> into VN?  Regardless, we should be able to set it up to work from anywhere.

It's currently wired into VN.  But once I see the domwalk implementation I can
trivially adapt that I think.  There's two interesting cases, the iterating and
the non-iterating VN which switch around tree-ssa-sccvn.cc:8001.  Currently
all context sensitive information is kept but tagged rather than unwound
like a domwalk would do in its after_dom_children hook.  That's a) a bit ugly
(and costly) and b) for relations it's too simple (what VN currently does).  So
my hope was to throw that out and replace it with something else - there's
vn_avail which is what models the DOM relationship.  I'll have to think about
what we need for relations (for ranges that vn_avail should do).

Richard.

> Andrew
>
>

Reply via email to