Jan, What's the purpose behind calling vrp_meet and extract_range_from_unary_expr from within the IPA passes?
AFAICT that is not safe to do. Various paths through those routines will access static objects within tree-vrp.c which may not be initialized when IPA runs (vrp_equiv_obstack, vr_value). While this seems to be working today, it's a failure waiting to happen. Is there any way you can avoid using those routines? I can't believe you really need all the complexity of those routines, particularly extract_range_from_unary_expr. Plus it's just downright fugly from a modularity standpoint. ? Jeff