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 > >