Set nonnull attribute to ptr_info_def based on VRP

Thu Oct 13 04:49:00 GMT 2016

Hi Richard,

> what does this try to do?  Preserve info VRP computed across PTA?
> I think we didn't yet sort out the nonlocal/escaped vs. null handling properly
> (or how PTA should handle get_ptr_nonnull).  The way you are using it
> asks for pt.null to be orthogonal to nonlocal/escaped and thus having
> nonlocal or escaped would also require setting ptr.null in PTA.  It then
> would be also more canonical to set it for pt.anything as well.  Which
> means conservatively handling it would be equivalent to flipping its
> semantic and changing its name to pt.nonnull.
> That said, you seem to be simply "reserving" the bit for VRP, keeping it
> conservatively true when "not computed".  I guess I'm fine with this for now
> but it should be documented in the header file that way.

Thanks for the comments.

To summarize, currently I am not relying on PTA analysis at all. Just 
saving null from VRP (or rather nonnull) and preserving it across PTA. 
Primary intention is to pass it for PARM_DECL SSA names (from ipa-vrp).

In this case, using  pt.anything/nonlocal/escaped will only make the 
result more pessimistic.

Ideally, we should improve pt.null within PTA but for now as you said, I 
will document it.

When we start using pt.null from PTA analysis, we would also have to 
take into account pt.anything/nonlocal/escaped.

Does that make sense?


More information about the Gcc-patches mailing list