Tell you what... the only thing that's not painfully obvious in my patchset is that I'm removing irange::symbolic_p() in my first patch. I can revert that bit and re-test the entire set. That way, there won't be anything remotely controversial. We can wait until next year, remove symbolic_p() and put a big fat assert in the setter to make sure nothing ever creeps in there. Just trying to make the transition / review easier ;-). Aldy On Tue, Nov 22, 2022 at 2:40 PM Aldy Hernandez wrote: > > > > On 11/22/22 10:22, Richard Biener wrote: > > On Tue, Nov 22, 2022 at 10:04 AM Aldy Hernandez wrote: > >> > >> > >> > >> On 11/22/22 09:25, Richard Biener wrote: > >>> On Tue, Nov 22, 2022 at 9:24 AM Richard Biener > >>> wrote: > >>>> > >>>> On Mon, Nov 21, 2022 at 5:49 PM Jeff Law wrote: > >>>>> > >>>>> > >>>>> On 11/21/22 09:35, Aldy Hernandez via Gcc-patches wrote: > >>>>>> I've been playing around with removing the legacy VRP code for the > >>>>>> next release. It's a layered onion to get this right, but the first > >>>>>> bit is pretty straightforward and may be useful for this release. > >>>>>> Basically, it entails removing the old VRP pass itself, along with > >>>>>> value_range_equiv which have no producers left. The current users of > >>>>>> value_range_equiv don't put anything in the equivalence bitmaps, so > >>>>>> they're basically behaving like plain value_range. > >>>>>> > >>>>>> I removed as much as possible without having to change any behavior, > >>>>>> and this is what I came up with. Is this something that would be > >>>>>> useful for this release? Would it help release managers have less > >>>>>> unused cruft in the tree? > >>>>>> > >>>>>> Neither Andrew nor I have any strong feelings here. We don't foresee > >>>>>> the legacy code changing at all in the offseason, so we can just > >>>>>> accumulate these patches in local trees. > >>>>> > >>>>> I'd lean towards removal after gcc-13 releases. > >>>> > >>>> I think removing the ability to switch to the old implementation easens > >>>> maintainance so I'd prefer to have this before the gcc-13 release. > >>>> > >>>> So please go ahead. > >>> > >>> Btw, ASSERT_EXPR should also go away with this, no? > >> > >> Ah yes, for everything except ipa-*.* which uses it internally (and sets > >> it in its internal structures): > >> > >> - ASSERT_EXPR means that only the value in operand is allowed to > >> pass > >> through (without any change), for all other values the result is > >> unknown. > > > > Ick. But yeah, I can see how 'ASSERT_EXPR' looked nice to use here > > (but it's only a distinct value, so TARGET_OPTION_NODE would have > > worked here as well) > > > >> I can remove all other uses, including any externally visible documentation. > > > > Works for me. > > Documented and added change log entries. Retested on x86-64 Linux. > > There are three follow-up patches removing ASSERT_EXPR which I'll post > shortly. > > OK for trunk? > > Aldy