<p dir="ltr">Clang's AST is immutable so there isn't a need for this kind of incremental computation.</p>
<div class="gmail_quote">On Feb 11, 2014 3:11 AM, "Mahesha S" <<a href="mailto:mahesha.llvm@gmail.com">mahesha.llvm@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">Missed to cc my below reply (to Ted) into clang-dev list.<div><br></div><div><br></div><div>--</div><div>mahesha</div><div><br><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Mahesha S</b> <span dir="ltr"><<a href="mailto:mahesha.llvm@gmail.com" target="_blank">mahesha.llvm@gmail.com</a>></span><br>
Date: Tue, Feb 11, 2014 at 9:45 AM<br>Subject: Re: [cfe-dev] A question on data flow analysis in clang<br>To: Ted Kremenek <<a href="mailto:kremenek@apple.com" target="_blank">kremenek@apple.com</a>><br><br><br><div dir="ltr">
Hi Ted,<div>
<br></div><div>I am sorry for my late reply. When I said "incremental", I meant it as follows.</div><div><br></div><div>========================================</div><div>When a program undergoes change during development or compilation (i.e. during the is optimisation phase), the data flow information can be updated either by repeating the original exhaustive analysis, or by using incremental techniques that attempt to reuse the old information and recompute only the information affected by the change. Presuming that a change typically has a localised effect, or at least does not affect all of the program's data flow.<br>
</div><div><br></div><div>In one sentence I meant: incremental computation of data flow values by considering the old computed data flow values (on old program) and new additional changes to program. </div><div><br></div>
<div>Mathematically I meant: DFA(current_program) = DFA(old_program) + DFA(new_additional_changes_to_old_program)</div><div>========================================</div><div><br></div><div><br></div><div>--</div><div>
mahesha </div></div><div class="gmail_extra"><div><div><br><br><div class="gmail_quote">On Wed, Jan 22, 2014 at 5:10 AM, Ted Kremenek <span dir="ltr"><<a href="mailto:kremenek@apple.com" target="_blank">kremenek@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Mahesha,<br>
<br>
To answer your question, I need to understand what you mean by "incremental". That term implies that there can be changes in the analysis results, somehow, when running the analysis multiple times. If you provided a bit of context, I could more precisely answer your question.<br>
<br>
Operationally, analyses are typically implemented using a work list algorithm, which computes data flow values until a fix point is reached. This is a kind of incremental analysis, but I'm not certain if this is what you meant by "incremental."<br>
<br>
Ted<br>
<div><div><br>
> On Jan 12, 2014, at 9:56 PM, Mahesha S <<a href="mailto:mahesha.llvm@gmail.com" target="_blank">mahesha.llvm@gmail.com</a>> wrote:<br>
><br>
> Hello all,<br>
><br>
> I wanted to know that - the data flow analysis which is implemented in Clang (include/clang/Analysis) - is incremental analysis or it re-solves the equations at every CFG node?<br>
><br>
> I will look into the source code, but, meanwhile, I thought of quickly getting "yes/no" answer before I spend time with source code.<br>
><br>
><br>
> --<br>
> mahesha<br>
</div></div>> _______________________________________________<br>
> cfe-dev mailing list<br>
> <a href="mailto:cfe-dev@cs.uiuc.edu" target="_blank">cfe-dev@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
</blockquote></div><br><br clear="all"><div><br></div></div></div><span><font color="#888888">-- <br><div>mahesha</div>
</font></span></div>
</div><br><br clear="all"><div><br></div>-- <br><div>mahesha</div>
</div></div>
<br>_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div>