On Tue, Mar 12, 2024 at 10:46:42AM +0100, Jan Hubicka wrote: > 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.
With the posted patch, perhaps if we don't want to union jump_tables etc., all we could punt on is differences in the jump_table VRs rather than just any SSA_NAME_RANGE_INFO differences. But I agree that for GCC 15 we really want to merge rather than punt. > 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. Jakub