Hi,
Just noticed a small nit - why not reuse ipa_vr in ipa_jump_func instead of adding vr_known and m_vr ?
This is because we want to reuse vrp_intersect_ranges and vrp_meet which are not trivial. On the other hand, in ipa_jump_func, since we stream the data we have a simpler data structure with wide_int.
Thanks, Kugan