On Thu, Oct 13, 2016 at 6:49 AM, kugan <kugan.vivekanandara...@linaro.org> wrote: > 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?
Yes. Thanks, Richard. > Thanks, > Kugan >