<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">On Mar 21, 2016, at 10:00 AM, Jia Chen via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:<br class=""><div><blockquote type="cite" class=""><div class=""><div bgcolor="#FFFFFF" text="#000000" class=""><blockquote cite="mid:CAF4BwTWVb7QQq7OGcpWcqSGru5dbmvdb79KpgZFK205Hnk6XJQ@mail.gmail.com" type="cite" class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000" class=""><br class="">
                So my question here is: what kind(s) of precision really
                justify the cost and what kinds do not?</div>
            </blockquote>
            <div class=""><br class="">
            </div>
            <div class="">Depends entirely on your applications.</div>
            <div class=""> </div>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">
              <div bgcolor="#FFFFFF" text="#000000" class=""> Has anybody done
                any study in the past to evaluate what kinds of features
                in pointer analyses will benefit what kinds of
                optimization passes?</div>
            </blockquote>
            <div class="">Yes.</div>
            <div class="">Chris did many years ago, and i've done one more
              recently.</div>
          </div>
        </div>
      </div>
    </blockquote>
    <br class="">
    Great! Are they published somewhere? Can the data be shared somehow?<br class=""></div></div></blockquote><div><br class=""></div><div><br class=""></div><div>My results are published here:</div><div><a href="http://llvm.org/pubs/2005-05-04-LattnerPHDThesis.html" class="">http://llvm.org/pubs/2005-05-04-LattnerPHDThesis.html</a></div><div><br class=""></div><div>Sadly, they are over a decade out of date, and some things have changed since then :-)</div><br class=""><blockquote type="cite" class=""><div class=""><div bgcolor="#FFFFFF" text="#000000" class=""><blockquote cite="mid:CAF4BwTWVb7QQq7OGcpWcqSGru5dbmvdb79KpgZFK205Hnk6XJQ@mail.gmail.com" type="cite" class=""><div dir="ltr" class=""><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000" class="">
                PS2: If no such evaluation exists in the past, I'd happy
                to do that myself and report back my findings if anyone
                here is interested.</div>
            </blockquote>
            <div class="">I don't think any of the world is set up to make that
              valuable.</div>
            <div class=""><br class="">
            </div>
            <div class="">Nothing takes advantage of context sensitivity, flow
              sensitivity, etc.</div>
          </div>
        </div>
      </div>
    </blockquote>
    I agree that nothing takes advantage of context sensitivity. But I
    would argue against flow sensitivity, field sensitivity, heap model
    and external function models. Flow sensitivity is helpful when the
    optimization pass itself is flow-sensitive (e.g. adce, gvn), and
    field sensitivity is helpful when a struct contains multiple
    pointers. Heap sensitivity is basically what motivates Chris
    Lattner's PLDI'07 paper, and external function models are helpful
    since without them the analysis has to be extremely conservative and
    concludes everything that external functions touch all may-alias
    each other. <br class=""></div></div></blockquote><br class=""></div><div>I’m still a big fan of context sensitive, flow insensitive, unification based models.  Contrary to your claim, context sensitivity *is* useful for mod-ref analysis, e.g. “can I hoist a load across this call”?  Context sensitivity improves the precision of the mod/ref set of the call.</div><div><br class=""></div><div>-Chris</div><br class=""></body></html>