> Hi! Hi, > > On Thu, Feb 15, 2024 at 08:29:24AM +0100, Jakub Jelinek wrote: > > 2024-02-15 Jakub Jelinek <ja...@redhat.com> > > > > PR middle-end/113907 > > * ipa-icf.cc (sem_item_optimizer::merge_classes): Reset > > SSA_NAME_RANGE_INFO and SSA_NAME_PTR_INFO on successfully ICF merged > > functions. > > > > * gcc.dg/pr113907.c: New test. > > I'd like to ping the > https://gcc.gnu.org/pipermail/gcc-patches/2024-February/645644.html > patch. > After looking at this PR again yesterday, I'm convinced we don't need > either this patch or some other patch to deal with the jump functions, > but both, this patch to clear (or other variant would be to union them) > SSA_NAME_RANGE_INFO in the bodies of IPA-ICF merged functions, and another > patch that would maybe in sem_function::merge go through all the > callees cgraph edges and for each of them attempt to merge (for value > range union) at least the value range/pointer alignment information from > the corresponding cgraph edge from alias for all jump functions of all > the arguments. > > Bootstrapped/regtested again last night.
I am sorry for delaying this. I made the variant that simply compares value range of functions and prevents merging if they diverge and wanted to make some bigger statistics. This made me notice some performance problems on clang performance and libstdc++ RB-trees which disrailed me from the original PR. I will finish the statistics today. For next stage1 we definitly want to move ahead with merging metadata (not only value ranges, but hopefully also TBAA). Currently the only thing we merge aggressively is the edge profile (and we have PR on that merging functions which differs only but likely/unlikely attribute). However for backportability and for this avoiding merging may be safer solution depending on the stats.A I was looking into ipa-vrp useability and there are several tests on Firefox talos where ipa-prop VRP makes difference. It boils down to propagating fact that parameter is alway snon-NULL. This is commonly tested in C++ casts. Honza