Hi, On Tue, Apr 25 2023, Aldy Hernandez via Gcc wrote: > After GCC 13 is released we will remove legacy range support from the > compiler, and convert irange's to wide_ints. I want to give everyone > a heads up, to help understand what's involved and what the end result is. >
[...] > > 1. Converting users of the old API to the new irange API. > [...] > > The IPA passes also use the old API, but I have plans (and patches) > for revamping all of the IPA ranges. Details below. Thanks a lot for taking care of this. [..] > IPA has been rolling their own ranges forever. They use a combination > of the legacy API along with handcrafted pairs of wide_ints (ipa_vr). > The passes must be divorced of its legacy dependency, and cleaned up a > bit. IPA is also very tied to integers and pointers, and I see no > reason why we can't keep track of float arguments, etc. Agreed. > > I am sitting on a lot of additional patches to do 90% of the > conversion, but need to consult with the IPA experts on various issues > before proceeding (for instance, the lifetime of various structures). > Among these patches are generic vrange LTO streaming functions and > vrange hashing. I think it's time we make vrange a first class > citizen for LTO/hashing and a few other things folks were doing in an > ad-hoc manner. This should alleviate the maintenance burden on the > IPA maintainers going forward. Note, that the IPA work is a > follow-up, and only after careful consultation with the relevant > maintainers. I need to get up to speed when it comes to the new representation and new API but I'll be happy to help. Martin