<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jun 1, 2016 at 11:11 AM, Jia Chen <span dir="ltr"><<a href="mailto:grievejia@gmail.com" target="_blank">grievejia@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Wed, Jun 1, 2016 at 12:38 PM, Daniel Berlin <<a href="mailto:dberlin@dberlin.org">dberlin@dberlin.org</a>> wrote:<br>
> Sure, and FWIW, it depends on the definition of unused.<br>
> GCC's andersen's analysis eliminates variables (ie prior to solving) that<br>
> are not treated like pointers.<br>
> That is, if they are not dereferenced, etc, it simply ignores them.  You can<br>
> prove this is correct, and is common (see<br>
> <a href="https://www.lib.utexas.edu/etd/d/2009/hardekopfb48332/hardekopfb48332.pdf" rel="noreferrer" target="_blank">https://www.lib.utexas.edu/etd/d/2009/hardekopfb48332/hardekopfb48332.pdf</a><br>
> and <a href="http://aria.cs.vt.edu/refs/docs/pldi00.ps" rel="noreferrer" target="_blank">http://aria.cs.vt.edu/refs/docs/pldi00.ps</a> for non-pointer elimination)<br>
<br>
</span>I agree that it is possible. However, the current cfl-aa<br>
implementation is not doing something that gcc does (it is even less<br>
precise than Andersen's analysis at this point!). </blockquote><div><br></div><div>Unless you use one of the CFL versions of the  inclusion  algorithms (which i don't believe are amenable to stratified sets), it will always be less precises.<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It just looks at<br>
instructions, translates them to edges, and add edges to<br>
StratifiedSets. What bothers me here is why we must explicitly add<br>
assign edges for things like unused allocas, e.g. malloc() return<br>
values, and free() argument. In other words, the suspicion is on the<br>
implementation, not the underlying approach.<br>
</blockquote></div><br></div><div class="gmail_extra">If you want to rearchitect or rework parts of it, i'm sure george would be supportive.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Like any other software project, the thing that tends to be the reason stuff got done the way it is is lack of time.</div><div class="gmail_extra"><br></div></div>